javascript正则表达式尾随零

时间:2016-12-14 15:44:49

标签: javascript regex

Javascript正则表达式

我有以下正则表达式,我想在十进制之后不匹配零,1.0或1.00不匹配但应匹配1.25或1.2

^(?!0\.)(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d{1,2})?$

它接受以下输入

1.00
1.25
does not accept leading zero ex. 0.25
100
1000
1,000
100,000

2 个答案:

答案 0 :(得分:1)

您需要在最后添加否定前瞻:

^(?!0\.)(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.(?!0+$)\d{1,2})?$
                                       ^^^^^^^

请参阅regex demo

(?!0+$)否定前瞻限制了后续消费子模式\d{1,2})?$,因此\d{1,2}不再与000匹配。

答案 1 :(得分:0)

这是从相反的方法看待它,而不是被排除在外:

^[1-9],?[0-9]*.?[1-9]*$