Javascript 正则表达式-数量字段

Javascript 正则表达式-数量字段,javascript,regex,integer,Javascript,Regex,Integer,我想使用Javascript的正则表达式验证quantity字段的内容 有效的输入应该是一个整数,从零开始。如果前导零也可以删除,那就太好了 示例 1 Pass 0 Pass 01 Failed 00 Failed -1 Failed 1.1 Failed 1000000 Pass 我已经试过了,但我得到的最好的结果是 var regex = /[0-9]{1,9}/; …对于负数或带前导零的数字不会失

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

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

示例

1         Pass
0         Pass
01        Failed
00        Failed
-1        Failed
1.1       Failed
1000000   Pass
我已经试过了,但我得到的最好的结果是

var regex = /[0-9]{1,9}/;
…对于负数或带前导零的数字不会失败


谢谢

试试
^\d+$
。应该匹配正整数。

尝试
^\d+$
。应匹配正整数。

如果要删除前导零而不是禁止它们,则可以使用以下方法:

^0*(\d{1,9})$

现在,您将在捕获的组编号
1
(即使只输入了一个
0
)中找到不带尾随零的数字。

如果您想删除前导零而不是禁止它们,则可以使用以下方法:

^0*(\d{1,9})$

现在,您将在捕获的组编号中找到不带尾随零的数字。
1
(即使只输入了一个
0

此正则表达式匹配任何不带前导
0
的数字序列(除了
0
本身,它是单独处理的)


^
$
是锚定,它们将匹配锚定到字符串的开头和结尾。这意味着,数字前后不允许有任何内容,因此,不能包含减号。

此正则表达式匹配没有前导的任何数字序列
0
(除了
0
本身,它是单独处理的)

var re = /^0*([^0]\d*)$/;
var match = re.exec(str);
if (match) {
    var i = parseInt(match[1], 10);
}
else {
    //whoops, not an integer
}
^
$
是锚定,它们将匹配锚定到字符串的开头和结尾。这意味着,数字前后不允许有任何内容,因此,不能包含负号

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]返回不带前导零的整数,将[0]匹配整个匹配字符串)


(match[1]返回不带前导零的整数,匹配[0]整个匹配字符串)。

01是有效的>=0整数,00.01是有效的>=0整数,以及00。例如,这将匹配01不处理前导零。例如,这将匹配01不处理前导零。这将不会单独处理
0
,对吗?呸。如果您将其更改为parseInt(匹配[0],10),它将。正则表达式本身将匹配0。不匹配。它需要一个非零字符;)这不会自行处理
0
,对吗?呸。如果您将其更改为parseInt(匹配[0],10),它将。正则表达式本身将匹配0。不匹配。它需要一个非零字符;)完美的我就知道你们不会让我失望的!完美的我就知道你们不会让我失望的!