我想找到包括句点和逗号在内的数字,但Regex不适用于javascript

I want to find numbers-include dot and comma- but Regex not working in javascript

本文关键字:数字 Regex javascript 适用于 不适用 包括 句点      更新时间:2023-09-26

我觉得这很容易找到。但我尝试了多少方法仍然无法正常工作。下面是测试片段。

"100$ and 1.000,000EUR 1,00.0.000USD .90000000000000000000$ (09898)".replace(/['.,'d]*/g, '{n}')

我想要下面这样的结果。

{n}$ and {n}EUR {n}USD {n}$ ({n})

*是您的问题,请将正则表达式改为/[.,'d]+/g

"100$ and 1.000,000EUR 1,00.0.000USD .90000000000000000000$ (09898)".replace(/[.,'d]+/g, '{n}');

输出

{n}$ and {n}EUR {n}USD {n}$ ({n}) 

JSFiddle示例检查控制台屏幕的输出。

这里的问题是['.,'d]*可以匹配一个空字符串。第一步是使用[.,'d]+,以便这些字符中至少有一个匹配。

但更好的正则表达式是'd[.,'d]*,因为它确保被替换的字符以数字开头,所以不会替换句子中的句点。

如果您想更进一步,还可以使用(?=[.,'d]*'d)[.,'d]+if来处理以句点开头的数字。这个答案对你的案子来说是恰当的。前瞻性确保替换的文本中至少有一个数字。

请注意,您不需要在字符类中转义.

'.?'d[^'s]*'d

试试这个。替换为{n}。请参阅演示。

http://regex101.com/r/kP8uF5/3

var re = /'.?'d[^'s]*'d/gm;
var str = '100$ and 1.000,000EUR 1,00.0.000USD .90000000000000000000$ (09898)';
var subst = '{n}';
var result = str.replace(re, subst);