我想使用Javascript的正則表達式驗證數量字段的內容。正則表達式 - 數量字段
有效輸入將是一個整數,從零開始向上。如果前導零可以被刪除,那就太好了。
例子
1 Pass
0 Pass
01 Failed
00 Failed
-1 Failed
1.1 Failed
1000000 Pass
我曾嘗試自己,但我得到的最好的是...
var regex = /[0-9]{1,9}/;
...不就負數失敗,或數字與前導零。
謝謝!
我想使用Javascript的正則表達式驗證數量字段的內容。正則表達式 - 數量字段
有效輸入將是一個整數,從零開始向上。如果前導零可以被刪除,那就太好了。
例子
1 Pass
0 Pass
01 Failed
00 Failed
-1 Failed
1.1 Failed
1000000 Pass
我曾嘗試自己,但我得到的最好的是...
var regex = /[0-9]{1,9}/;
...不就負數失敗,或數字與前導零。
謝謝!
這個正則表達式匹配沒有前導0
(除了0
本身,單獨處理)的任何數字序列。
var regex = /^0$|^[1-9][0-9]*$/;
^
和$
是錨,其中錨的匹配的字符串的開頭和結尾。這意味着,在數字之前或之後都不允許任何內容,因此,不能包含減號。
0好抓! –
完美。我知道你的stackoverflow的人不會讓我失望! –
如果你想刪除領先,而不是零禁止他們,那麼你可以使用這個:
^0*(\d{1,9})$
現在你會發現數而不在拍攝組尾隨零沒有。 1
(即使只輸入了一個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])。
這不會自己處理'0',會嗎? –
Bah。如果你把它改成parseInt(match [0],10),它會。正則表達式本身將匹配0. –
不,它不會。它需要一個非零字符;) –
01是一個有效的> = 0的整數,以及00. – m0skit0