2011-10-18 28 views
0

試圖用正則表達式來驗證一個字符串包含9或12位(而不是10或11),目前使用兩個正則表達式的列表,並檢查輸入字符串的兩倍。這可以簡化嗎?的Javascript正則表達式:九個或十位數字符串

var regexes = [/^[0-9]{9}$/, /^[0-9]{12}$/] 
for (var i = 0; i < regexes.length; ++i) { 
     if (regexes[i].test(input)) 
      return true; 
} 
return false; 

回答

5

你可以使用正則表達式是這樣的:

/^[0-9]{9}([0-9]{3})?$/ 

所以9位數字,可能還跟着3多個數字。

然而,有什麼不對檢查兩種可能性,你有。

+0

+1爲時已晚:) – FailedDev

+0

你也可以使用'\ D'它代表一個數字。 – pimvdb

+0

我還以爲檢查兩種可能會影響性能? – Patrick

2
/^\d{9}(\d{3})?$/ 

這應該工作:d

2
var regex = /^[0-9]{9}$|^[0-9]{12}$/; 
if (input.match(regex)!= null) 
    return true; 
相關問題