在JavaScript中,从美元金额中提取数字的最简洁、高效和可靠的方法是什么?

在JavaScript中,从美元金额中提取数字的最简洁、高效和可靠的方法是什么?,javascript,algorithm,Javascript,Algorithm,我说的是把一个字符串读入一个数字,例如 “$107140946”-->107140946 “$9.99”-->9.99 还有比这更好的方法吗 dolstr.replace('$',''); dolstr.replace(',',''); var num = parseInt(dolstr,10); ?使用简单的正则表达式和字符串的replace函数 parseFloat(dolstr.replace(/[^\d\.]/g',) 崩溃 它替换不是数字(0-9)和句点的字符的每个实例。请注意,句点

我说的是把一个字符串读入一个数字,例如

“$107140946”
-->
107140946

“$9.99”
-->
9.99

还有比这更好的方法吗

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

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

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

崩溃

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


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

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

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

您可以将所有这些放在一行中:

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

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

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

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

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