Ответ 1
Используйте глобальное регулярное выражение для замены всех запятых пустой строкой:
var str = "12,345,678";
str = str.replace(/,/g, "");
parseInt(str, 10);
У меня есть страница с некоторыми элементами, которые контролируются пользователем. Одним из них является поле ввода текста, в котором пользователь должен ввести номер. Все работает хорошо, если пользователь вводит только цифры (EG 9000), но пользователь использует нотацию запятой (то есть 9 000) javascript не принимает ввод как целое число.
Как я могу удалить запятые и/или принудительно ввести целое число? Я попытался использовать parseint(), но он не работает с запятыми.
Используйте глобальное регулярное выражение для замены всех запятых пустой строкой:
var str = "12,345,678";
str = str.replace(/,/g, "");
parseInt(str, 10);
или даже лучше
var s="jdjsghd0182.99";
var str = parseFloat(s.replace(/[^0-9 | ^.]/g, ''));
Или даже лучше, учитывая общую ненадежность ввода пользователя, используйте это, чтобы избавиться от всех нечисловых символов:
var s = "9,Ljk876";
var t = parseInt(s.replace(/[^0-9]/g, ''));
alert ("s:" + s + ", t:" + t);
возможно
parseint(ny9000withCommas.replace(/\,/g,""))
позволяет говорить об ограничении:
вы можете/должны разрешить пользователю вводить как 9000, так и 9 000
вы можете проверить правильность с помощью REGEX.
на стороне сервера - вы должны соединить запятые и считать их целыми.