代码之家  ›  专栏  ›  技术社区  ›  Mike Cole

在javascript中带逗号的数字

  •  27
  • Mike Cole  · 技术社区  · 16 年前

    我有一个javascript函数,它接受一个数字并对该数字执行数学运算。但是,我输入的数字可能有一个逗号,而且根据我对javascript的有限经验,我在使用该值时遇到了问题。它似乎不将其视为数字类型。

    获取值为1000的参数并将其转换为数字1000最简单的方法是什么?

    4 回复  |  直到 9 年前
        1
  •  35
  •   scunliffe    15 年前

    您可以将文本框设置为 OnFuffice() 函数的作用是,当用户试图离开文本框时,可以使用javascript从值中删除逗号。 代替 功能

    例子 :

      function checkNumeric(objName)
      {
        var lstLetters = objName;
    
        var lstReplace = lstLetters.replace(/\,/g,'');
      }  
    

    在此处输入标记:

    <input type="text" onblur="checkNumeric(this);" name="nocomma" size="10" maxlength="10"/>
    
        2
  •  23
  •   johnvey    16 年前

    快速而肮脏的方法是使用string.replace()方法:

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

    这会将cleanstring设置为: 1200000 . 假设您使用的是US格式,那么将发生以下转换:

    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
    

    如果您在其他区域设置中颠倒了“.”和“,”,则必须在regex中进行更改。

        3
  •  2
  •   James Black    16 年前

    只需将所有逗号替换为空白。

    你可以这样做: http://blog.techsaints.com/2007/06/25/javascript-how-to-remove-all-commas-from-a-number/

        4
  •  2
  •   vsync    9 年前

    将逗号分隔的数字字符串转换为类型编号(aka 型铸造 )

    +"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('');
    }