Regex: how to only allow integers greater than zero
我尝试了下面的方法,只允许在我的文本框中使用整数,这很好,但是它允许在其中使用零。是否还有其他可以添加的内容来防止添加零?
1 | \d+ |
这将允许10而不是01,并且它将只允许由数字组成的数字,即没有句号或减号……但也不允许有加号、科学记数法等。
1 | ^[1-9][0-9]*$ |
一个微小的变化是:
1 | /\d*[1-9]\d*/ |
这将允许前导零。
如果您不关心负数和像
1 | /[1-9]\d*/ |
对于更健壮的解决方案,我建议将匹配的字符串转换为整数,并检查它是否满足您的条件。
1 | ^(0*[1-9][0-9]*)$ |
这将允许"愚蠢"的数字,如007,但不是0或000或空字符串。
注意,
1 | ^(\d{2}[1-9])$ |
匹配:从001到999例子001099九百九十九
不匹配00001零
代码:
1 | ^([1-9][0-9]+|[1-9])$ |
示例:http://regexr.com/3annd
测试:
1 2 3 4 5 6 7 | 0 10 01 11 00 1 100 |