RegEx - 排除零

时间:2012-01-18 13:32:08

标签: regex

如何在此正则表达式中排除0输入?用户应该能够输入任何数字......但不能输入零​​

^([0-9]*|\d*\.\d{1}?\d*)$

谢谢。

6 个答案:

答案 0 :(得分:9)

以下正则表达式

^(?!0*(\.0+)?$)(\d+|\d*\.\d+)$

不匹配

0
0.0
 .0

但允许

  .1
 0.01
 1.00
 1.1
01.01
10.10
 1

答案 1 :(得分:1)

这个怎么样:

^((?:[1-9][0-9]*)(?:\.[0-9]+)?)$

匹配度:

1
5
10
22
5000
1.0
10.10
123.456

不匹配:

0
00
007
0.0
0.000
0.50
0.01
5,432.10
1,234,567
10.

您可以进一步将其锁定到特定范围,如下所述:

http://www.regular-expressions.info/numericranges.html

答案 2 :(得分:0)

如果我了解您的要求,请使用[1-9]代替[0-9]\d

^([1-9]*|[1-9]*\.[1-9]{1}?[1-9]*)$

答案 3 :(得分:0)

试试这个:^([1-9] +)。\ d + $ 这要求您从1-9

输入至少1位数

或^([1-9] )。\ d $ 这不要求您输入任何内容,但会限制您输入的内容为1-9

答案 4 :(得分:0)

你只需要改变:  [1-9]为[1-9]  * / d代表[1-9]

原文:^([0-9]*|\d*\.\d{1}?\d*)$

解决方案:^([1-9]*|[1-9]*\.[1-9]{1}?[1-9]*)$

  

\ d是[0-9]

答案 5 :(得分:0)

这项工作仅限自然数字为5位数,并限制左侧5位数字(您可以个性化该限制)

/^[0]{0,5}[1-9]\d{0,4}$/

匹配

1
01 .. 000001
0100000 .. 0000010000

不匹配:

0
00 .. 00000