我想使用Javascript的正则表达式验证数量字段的内容。
有效输入是一个整数,从零开始。如果前导零也可以删除,那就太棒了。
实施例
1 Pass
0 Pass
01 Failed
00 Failed
-1 Failed
1.1 Failed
1000000 Pass
我试过自己,但我得到的最好的是......
var regex = /[0-9]{1,9}/;
......对于负数或带前导零的数字不会失败。
谢谢!
答案 0 :(得分:4)
这个正则表达式匹配没有前导0
的任何数字序列(0
本身除外,它是单独处理的。)
var regex = /^0$|^[1-9][0-9]*$/;
^
和$
是锚,它将匹配锚定到字符串的开头和结尾。这意味着,在数字之前或之后不允许任何内容,因此,不能包含减号。
答案 1 :(得分:1)
如果你想删除前导零而不是禁止它们,那么你可以使用它:
^0*(\d{1,9})$
现在,您将在捕获的组号中找到没有尾随零的数字。 1
(即使只输入了一个0
)。
答案 2 :(得分:0)
试试^\d+$
。应该匹配正整数。
答案 3 :(得分:0)
var re = /^0*([^0]\d*)$/;
var match = re.exec(str);
if (match) {
var i = parseInt(match[1], 10);
}
else {
//whoops, not an integer
}
(match [1]返回没有前导零的int,匹配[0]整个匹配的字符串)。