Числа с запятыми в Javascript
У меня есть функция javascript, которая принимает число и выполняет математическую операцию над номером. Тем не менее, число, которое я передаю, может иметь запятую в нем, и из моего ограниченного опыта работы с Javascript у меня возникают проблемы с работой с этим значением. Кажется, что это не относится к числовому типу.
Какой самый простой способ принять параметр со значением 1000 и преобразовать его в числовой 1000?
Ответы
Ответ 1
Вы можете настроить текстовое поле для функции onblur(), поэтому, когда пользователь пытается покинуть текстовое поле, вы удалите запятые из значения с помощью javascript replace функция
Пример:
function checkNumeric(objName)
{
var lstLetters = objName;
var lstReplace = lstLetters.replace(/\,/g,'');
}
С тегом ввода здесь:
<input type="text" onblur="checkNumeric(this);" name="nocomma" size="10" maxlength="10"/>
Ответ 2
Быстрый и грязный способ - использовать метод String.replace():
var rawstring = '1,200,000';
var cleanstring = rawstring.replace(/[^\d\.\-\ ]/g, '');
Это установит cleanstring на: 1200000
. Предполагая, что вы используете форматирование в США, будут выполняться следующие преобразования:
1234 --> 1234
1,234 --> 1234
-1234 --> -1234
-1,234 --> -1234
1234.5 --> 1234.5
1,234.5 --> 1234.5
-1,234.5 --> -1234.5
1xxx234 --> 1234
Если вы находитесь в других локалях, которые инвертируют '.' и ',', тогда вам придется сделать это изменение в регулярном выражении.
Ответ 3
Просто замените все запятые пробелом.
Вы можете следить за этим:
http://blog.techsaints.com/2007/06/25/javascript-how-to-remove-all-commas-from-a-number/
Ответ 4
Преобразует цифровую строку с разделителями-запятыми в номер типа (aka type casting)
+"1,234".split(',').join('') // outputs 1234
Структура
+ - math operation which casts the type of the outcome into type Number
"1,234" - Our string, which represents a comma delimited number
.split(',') - split the string into an Array: ["1", "234"], between every "," character
.join('') - joins the Array back, without any delimiter: "1234"
И простая функция:
function stringToNumber(s){
return +s.split(',').join('');
}