在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,我知道,但我认为如果它发现一个意外字符,它会停止解析