Числа с запятыми в Javascript - PullRequest
27 голосов
/ 07 мая 2009

У меня есть функция JavaScript, которая принимает число и выполняет математическую операцию над числом. Однако число, которое я передаю, может содержать запятую, и из-за моего ограниченного опыта работы с Javascript у меня возникают проблемы при работе с этим значением. Похоже, что это не числовой тип.

Какой самый простой способ взять параметр со значением 1000 и преобразовать его в числовое значение 1000?

Ответы [ 4 ]

35 голосов
/ 07 мая 2009

Вы можете настроить текстовое поле так, чтобы оно имело функцию 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"/>
23 голосов
/ 07 мая 2009

Быстрый и грязный способ - использовать метод String.replace ():

var rawstring = '1,200,000';
var cleanstring = rawstring.replace(/[^\d\.\-\ ]/g, '');

Это установит чистую строку в: 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

Если вы находитесь в других местах, которые инвертируют '.' и ',', тогда вам придется внести это изменение в регулярное выражение.

2 голосов
/ 23 августа 2015

Преобразует строку чисел с разделителями-запятыми в число типа (он же приведение типа )

+"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('');
}
2 голосов
/ 07 мая 2009

Просто замените все запятые на пробел.

Вы можете следить за этим: http://blog.techsaints.com/2007/06/25/javascript-how-to-remove-all-commas-from-a-number/

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