2010-09-25 62 views

回答

6

發生這種情況的原因是它匹配11中的1並將其稱爲匹配項。你必須確保沒有跟隨1.嘗試另一個數字:

var check = string.match("/(^|\D)1(\D|$)/"); 

這將尋找通過不是數字或字符串(^的開始/結束和文字環繞方式$錨)。

+0

非常感謝它完美的作品!我會盡快接受你的回答! – Adam 2010-09-25 04:00:38

+0

@zolex請顯示什麼輸入會打破正則表達式 – NullUserException 2010-09-25 04:05:35

+0

這個正則表達式只適用於這種特殊情況。看到我的upcomming答案的正則表達式,以檢查值是否在某種程度上分開列表... – 2010-09-25 04:05:56

2

另一種方式是將它與詞邊界錨定在一起:/\b1\b/只會與1匹配(如果未包含其他數字,字母或下劃線)。所以它會適用於你的情況(並且可讀性更強)。

但是,它會在像ID1OT這樣的情況下失敗 - 如果你想從那裏提取1,你只能用@NullUserException的方法來做到這一點。

相關問題