Javascript,正则表达式,从字符串中保留数字部分,包括小数位

时间:2017-05-31 20:09:06

标签: javascript

我需要解析一些包含逗号格式化数字和类似文本的数据,只保留数字部分:

“股票是1,124单位”

我想出了这个正常运行的正则表达式,除了0以下的数字,例如价格可能是0,259 EUR

qty = qty.textContent.replace(/\D/g,'');

如何修改仅删除文本,但仍保持原始数字感

我想 - > 0.259 不 - > 0259

EDITED

我需要两种情况,千位分隔符和小数位。

根据解析,当逗号为千位分隔符时可以是USD,或者是EUR,其中dot是小数位。我将为货币制作一个开关盒,谢谢你的快速答案!

2 个答案:

答案 0 :(得分:2)

这个正则表达式应该可行

\d+(\,|\.)\d+

它匹配1,230和0.123

如果您想删除逗号,可以执行此操作

yourstr.replace(",", "");

答案 1 :(得分:2)

只要字符串中没有句点过分,那么这应该有效:

qty = qty.textContent.replace(/[^\d\.]/g,'');

如果有(或可能是)其他时期,那么它会变得有点棘手。

您可以尝试以下方式:

([^\d.]|\.(?!\d))

这将匹配不是数字或句号的字符,或者不跟随另一个数字的句点。所以这样的事情应该有效:

"The st.oc.k is 1,124.22 units.".replace(/([^\d.]|\.(?!\d))/g,"")

给你回复:1124.22