Запятая возиться с вводом числа в Javascript - PullRequest
26 голосов
/ 14 февраля 2012

У меня есть страница с некоторыми элементами, которые контролируются пользователем.Одним из них является поле ввода текста, где пользователь должен ввести число.Все работает хорошо, если пользователь вводит только цифры (EG 9000), но если пользователь использует запятую (9000), javascript не принимает ввод как целое число.

Как я могу удалить запятые и/ или заставить ввод к целому числу?Я попытался использовать parseint (), но, похоже, он не работает с запятыми.

Ответы [ 4 ]

53 голосов
/ 14 февраля 2012

Используйте глобальное регулярное выражение для замены всех запятых пустой строкой:

var str = "12,345,678";
str = str.replace(/,/g, "");
parseInt(str, 10);
4 голосов
/ 02 мая 2013

или даже лучше

var s="jdjsghd0182.99";
var str = parseFloat(s.replace(/[^0-9 | ^.]/g, ''));
2 голосов
/ 14 февраля 2012

Или даже лучше, учитывая общую ненадежность пользовательского ввода, используйте это, чтобы избавиться от всех нечисловых символов: var s = "9,Ljk876"; var t = parseInt(s.replace(/[^0-9]/g, '')); alert ("s:" + s + ", t:" + t);

0 голосов
/ 14 февраля 2012

возможно

 parseint(ny9000withCommas.replace(/\,/g,""))

давайте поговорим об ограничении:

вы можете / должны разрешить пользователю вводить как 9000, так и 9000

, вы можете проверить действительность через REGEX..

на стороне сервера - вы должны удалить запятые и рассматривать их как целое число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...