正则表达式:如何只允许大于零的整数

时间:2011-11-15 11:24:42

标签: regex

我已经尝试过以下内容,只允许在我的文本框中使用整数,这样做效果很好,但它允许在那里使用零。还有什么我可以添加以防止零被添加?

\d+

6 个答案:

答案 0 :(得分:6)

这将允许10而不是01,并且它将仅允许由数字组成的数字,即没有句号或减号......但也没有加号,科学记数法等。

^[1-9][0-9]*$

答案 1 :(得分:4)

如果你不关心像07那样的负面和愚蠢的数字,那就可以了:

/[1-9]\d*/

对于更强大的解决方案,我建议将匹配的字符串转换为整数,并检查它是否符合您的标准。

答案 2 :(得分:4)

这是一个小变化:

/\d*[1-9]\d*/

这将允许前导零。

答案 3 :(得分:1)

^(0*[1-9][0-9]*)$

这将允许"愚蠢"像007这样的数字,但不是0或000或空字符串。

请注意,\d也匹配其他字符集中的数字,例如٠١٢٣٤٥٦٧٨٩。请参阅:\d is less efficient than [0-9]

^表示字符串结尾的开头$。它们一起确保整个字符串匹配。

答案 4 :(得分:0)

代码:

^([1-9][0-9]+|[1-9])$

示例:http://regexr.com/3annd

经过测试:

0
10
01
11
00
1
100

答案 5 :(得分:0)

^(\d{2}[1-9])$

与以下项匹配: 从001到999 例 001 099 999

不匹配 000 01 0