【问题标题】:What is the most compact, efficient and reliable way of extracting numbers from dollar amounts in JavaScript? [duplicate]在 JavaScript 中从美元金额中提取数字的最紧凑、最有效和最可靠的方法是什么? [复制]
【发布时间】:2015-12-21 22:08:56
【问题描述】:

我所说的是将字符串读入数字,例如

"$107,140,946" ---> 107140946

"$9.99" ---> 9.99

有没有更好的办法

dolstr.replace('$','');
dolstr.replace(',','');
var num = parseInt(dolstr,10);

???

【问题讨论】:

  • parseInt() 不尝试返回整数吗?
  • 我想你的意思不是parseFloat()
  • @JamesAMohler 我知道,但我认为如果发现意外字符会停止解析

标签: javascript algorithm


【解决方案1】:

使用正则表达式更易于阅读和维护

 parseFloat(dolstr.replace(/\$|,/g, ""));

【讨论】:

    【解决方案2】:

    您可以将所有这些都放在 oneliner 中:

    parseFloat(dolstr.replace('$','').split(",").join(""))
    

    请注意,我不会替换第二个,因为这只会删除第一个 ','。

    【讨论】:

      【解决方案3】:

      使用简单的正则表达式和字符串的replace 函数

      parseFloat(dolstr.replace(/[^\d\.]/g, ''))

      故障

      它替换不是数字 (0 - 9) 且不是句点的字符的每个实例。请注意,句点必须用反斜杠转义。

      然后您需要将函数包装在parseFloat 中以将字符串转换为浮点数。

      【讨论】:

        【解决方案4】:

        假设输入总是正确的,只保留数字 (\d) 和点 (\.) 并去掉其他字符。然后在结果上运行 parseFloat。

        parseFloat(dolstr.replace(/[^\d\.]/g, ''))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-18
          • 1970-01-01
          • 1970-01-01
          • 2017-12-26
          • 2019-11-20
          • 1970-01-01
          • 2016-05-16
          • 2014-01-31
          相关资源
          最近更新 更多