我需要解析一些包含逗号格式化数字和类似文本的数据,只保留数字部分:
“股票是1,124单位”
我想出了这个正常运行的正则表达式,除了0以下的数字,例如价格可能是0,259 EUR
qty = qty.textContent.replace(/\D/g,'');
如何修改仅删除文本,但仍保持原始数字感
我想 - > 0.259 不 - > 0259
EDITED
我需要两种情况,千位分隔符和小数位。
根据解析,当逗号为千位分隔符时可以是USD,或者是EUR,其中dot是小数位。我将为货币制作一个开关盒,谢谢你的快速答案!
答案 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