2017-01-17 55 views

回答

2

您可以使用此正則表達式使用負向預測。

(?!(?: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

似乎比它需要更復雜一點。 ;)試試這個:'^(?! 0 {1,4} $)\ d {1,4} $' –

+0

@JamesWilkins - 這個也有點複雜。檢查我的答案:) – Dekel

0

你可以使用這個表達式:

/(^0|^0[1-9]{1}[0-9]{0,2}|^[1-9][0-9]{0,3})$/g 

它基本上需要照顧的情況: 1)0 2)的情況下,任何數量從1開始的0領先 3)任何數量無法啓動與0

希望它有幫助!

+1

在發佈這篇文章之前,您是否檢查了其他答案? – Dekel

+0

@Dekel - 嘿剛剛看到他們...我在我的控制檯上工作,所以沒有檢查其他答案... – poushy

+0

明白了。正如你可以看到現在,對方的回答是比你的要簡單得多:) – Dekel

相關問題