正则表达式(^-?[1-9]*?0?(\.\d+)?$)|(^\d+\.$)
允许用户键入以下十进制或整数值
0.500
3
0
0.0
30
500000
4000.22
0.
-0.500
-3
不允许
03.3, 00, 02, 00.0
但是上面的正则表达式也允许.3
,.4
有没有不允许.3
或.44
谢谢的方法
我的尝试:
(^-?[1-9]*?0+?(\.\d+)?$)|(^\d+\.$)
似乎无效
答案 0 :(得分:2)
您可以匹配可选的-
,然后使用否定前瞻断言该模式不是以零开头,后跟数字。
感谢@ anubhava进行更正以形成最终图案。
^-?(?!0\d)\d+\.?\d*$
部分图案
^
字符串的开头-?
匹配可选的连字符(?!0\d)
负向查找,则断言右边直接不为0和一个数字\d+
匹配1个以上的数字\.?\d*
匹配可选的.
和0+位数字$
字符串结尾