在JavaScript中从美元金额中提取数字的最紧凑,最有效和最可靠的方法是什么?

时间:2015-12-21 22:08:57

标签: javascript algorithm

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

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

"$9.99" ---> 9.99

有没有比

更好的方法
dolstr.replace('$','');
dolstr.replace(',','');
var num = parseInt(dolstr,10);

???

4 个答案:

答案 0 :(得分:0)

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

replace

击穿

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

然后,您需要将函数包装在parseFloat(dolstr.replace(/[^\d\.]/g, ''))中,以便从字符串转换为浮点数。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

你可以把所有这些都放在oneliner上:

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

请注意,我没有替换第二个,因为这将只删除第一个','。

答案 3 :(得分:0)

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

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