【问题标题】:Numbers with commas in JavascriptJavascript中带逗号的数字
【发布时间】:2009-05-07 03:53:30
【问题描述】:

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

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

【问题讨论】:

  • @Mike C.-有些人只是攻击他们不理解的问题,我不知道为什么,他们就是这样做
  • 这似乎对一切都适得其反。我希望它会显示谁投反对票的日志,但我想这只会滋生怨恨。

标签: javascript regex


【解决方案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。假设您使用的是 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

如果您处于反转“.”的其他语言环境中和 ',',那么您必须在正则表达式中进行更改。

【讨论】:

    【解决方案3】:

    只需将所有逗号替换为空格即可。

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

    【讨论】:

    • 我之前发现了那篇文章,但我对 FormValue 项的来源感到困惑。
    • 带有空字符串(“空白”可能被解释为“空格”)
    • FormNumber 应该是我提到的链接中的 StartNumber,它出现了。
    【解决方案4】:

    将逗号分隔的数字字符串转换为类型数字(又名类型转换

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

    【讨论】:

    • 与您的实际答案无关 - 这很好 - 我非常感谢您在“故障”部分付出的额外努力。我希望更多的人会在这里这样做。谢谢!
    猜你喜欢
    • 2014-12-18
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    相关资源
    最近更新 更多