這是我的正則表達式的樣子:我需要創建一個輸入的正則表達式,這將需要一個1,2,3或4位數的輸入 - 但不會只接受「0」
/^\d{1,4}$/
它佔我想要的95%。它接受像字符串:
1234
2
21
9999
0100
但它也可以接受字符串,如:
0
00
000
0000
我不希望它這樣做。如何在保持我想要的行爲的同時停止它?
這是我的正則表達式的樣子:我需要創建一個輸入的正則表達式,這將需要一個1,2,3或4位數的輸入 - 但不會只接受「0」
/^\d{1,4}$/
它佔我想要的95%。它接受像字符串:
1234
2
21
9999
0100
但它也可以接受字符串,如:
0
00
000
0000
我不希望它這樣做。如何在保持我想要的行爲的同時停止它?
您可以使用此正則表達式使用負向預測。
(?!(?:0|^|)0{1,4}$)\d{1,4}
下面是這個表達式的運行例子:
var array = [
"1234",
"2",
"21",
"9999",
"0100",
"0",
"00",
"000",
"0000"
];
var regex = /(?!(?:0|^|)0{1,4}$)\d{1,4}/;
array.forEach(function(item) {
var match = item.match(regex);
console.log(item + ":", match ? match[0] : "no match");
});
謝謝,這很完美! –
似乎比它需要更復雜一點。 ;)試試這個:'^(?! 0 {1,4} $)\ d {1,4} $' –
@JamesWilkins - 這個也有點複雜。檢查我的答案:) – Dekel
你檢查了答案嗎? – Dekel