Javascript 正则表达式不允许不带前导零的小数
正则表达式Javascript 正则表达式不允许不带前导零的小数,javascript,angular,regex,ecmascript-6,angular9,Javascript,Angular,Regex,Ecmascript 6,Angular9,正则表达式(^-?[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+\.$)似乎不起作用您可以匹配一个可选的-,然后使用一个负的前瞻性断言模式不会以零开头,后面跟着一个数字 感谢@对最
(^-?[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\d)\d+\.?\d*$
部分模式
字符串的开头^
匹配可选连字符-?
负向前看,断言直接向右的不是0和数字(?!0\d)
匹配1+个数字\d+
匹配可选的\.?\d*
和0+位
字符串结尾$
请参见a您可以匹配可选的
-
,然后使用负前瞻性断言模式不是以零开头,后跟数字
感谢@对最终图案的更正
^-?(?!0\d)\d+\.?\d*$
部分模式
字符串的开头^
匹配可选连字符-?
负向前看,断言直接向右的不是0和数字(?!0\d)
匹配1+个数字\d+
匹配可选的\.?\d*
和0+位
字符串结尾$
请参见a为什么要使用正则表达式进行数值范围检查?我使用formcontrol进行输入框,并希望在与上述正则表达式不匹配时显示验证错误。您是否特别尝试排除精确值0.3、0.4和0.44,或者,您是否试图要求用户始终为小于1的分数值提供前导0?您使用的是哪种正则表达式?什么规则适用于负数?我想包括0.3,但不允许用户键入。3前面没有0。这只是第四只鸟的一个小更正。毕竟这是你的正则表达式解决方案。您应该将其作为答案发布。为什么要使用正则表达式进行数值范围检查?我使用formcontrol作为输入框,并希望在与上面的正则表达式不匹配时显示验证错误。如果您特别尝试排除精确值0.3、0.4和0.44,或者,您是否试图要求用户始终为小于1的分数值提供前导0?您使用的是哪种正则表达式?什么规则适用于负数?我想包括0.3,但不允许用户键入。3前面没有0。这只是第四只鸟的一个小更正。毕竟这是你的正则表达式解决方案。你应该把它作为答案贴出来。