正则表达式不允许不带前导零的小数
regex to not allow decimal fractions without leading zero
正则表达式 (^-?[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+\.$)
这似乎不起作用
您可以匹配一个可选的 -
,然后使用否定先行断言该模式不是以零后跟数字开头。
感谢@anubhava 对最终模式的修正。
^-?(?!0\d)\d+\.?\d*$
零件的图案
^
字符串开头
-?
匹配可选连字符
(?!0\d)
否定前瞻,断言直接在右边的不是0和数字
\d+
匹配 1+ 个数字
\.?\d*
匹配可选.
和0+位
$
字符串结束
看到一个regex demo
正则表达式 (^-?[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+\.$)
这似乎不起作用
您可以匹配一个可选的 -
,然后使用否定先行断言该模式不是以零后跟数字开头。
感谢@anubhava 对最终模式的修正。
^-?(?!0\d)\d+\.?\d*$
零件的图案
^
字符串开头-?
匹配可选连字符(?!0\d)
否定前瞻,断言直接在右边的不是0和数字\d+
匹配 1+ 个数字\.?\d*
匹配可选.
和0+位$
字符串结束
看到一个regex demo