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

What is the most compact, efficient and reliable way of extracting numbers from dollar amounts in JavaScript?

本文关键字:高效 JavaScript 是什么 方法 美元 金额中 提取 数字      更新时间:2023-09-26

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

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

"$9.99"-->9.99

有比更好的方法吗

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

使用regex读取和维护要简单得多

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

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

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

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

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

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

分解

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

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

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

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