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
答案 0 :(得分:1)
您需要在最后添加否定前瞻:
^(?!0\.)(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.(?!0+$)\d{1,2})?$
^^^^^^^
请参阅regex demo
(?!0+$)
否定前瞻限制了后续消费子模式\d{1,2})?$
,因此\d{1,2}
不再与00
或0
匹配。
答案 1 :(得分:0)
这是从相反的方法看待它,而不是被排除在外:
^[1-9],?[0-9]*.?[1-9]*$