正则表达式 - 数量字段

时间:2012-10-31 15:57:48

标签: javascript regex integer

我想使用Javascript的正则表达式验证数量字段的内容。

有效输入是一个整数,从零开始。如果前导零也可以删除,那就太棒了。

实施例

1         Pass
0         Pass
01        Failed
00        Failed
-1        Failed
1.1       Failed
1000000   Pass

我试过自己,但我得到的最好的是......

var regex = /[0-9]{1,9}/;

......对于负数或带前导零的数字不会失败。

谢谢!

4 个答案:

答案 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]整个匹配的字符串)。