为什么'12 .3456'.match(/ ^ \ d + \。\ d {2} $ | \ d {2} $ /)得到'56'

时间:2018-10-24 10:02:02

标签: javascript regex

我想使用javascript let 12.3456-> 12.34

我尝试'12.3456'.replace(/^\d+\.\d{2}$|\d{2}$/,"")可以做到

我什至去https://regex101.com/,但我不明白为什么reg exp可以匹配'56'

请帮助我理解它

1 个答案:

答案 0 :(得分:4)

因为您的正则表达式/^\d+.\d{2}$|\d{2}$/匹配后两位两位小数(^\d+.\d{2}$ |)数字({{1)}。由于第一个不匹配(您的输入有四个小数点),因此第二个替代匹配,并替换为空字符串。

\d{2}$

用空字符串替换为

12.3456
     ^^    matched by \d{2}$