8,10,12,981(瑞典的幾個區號)。總電話號碼可以是10或11(僅限數字) 如果8 + 9或10位 如果981 + 7或8位 這可以用正則表達式完成嗎?正則表達式&&邏輯條件(電話號碼在瑞典)
類似的東西..hm (8 | 10 | 12)\ d {N} =>總長10或11
8,10,12,981(瑞典的幾個區號)。總電話號碼可以是10或11(僅限數字) 如果8 + 9或10位 如果981 + 7或8位 這可以用正則表達式完成嗎?正則表達式&&邏輯條件(電話號碼在瑞典)
類似的東西..hm (8 | 10 | 12)\ d {N} =>總長10或11
什麼^(?:8\d{9,10}|(?:10|12)\d{8,9}$
?
編輯: 然後不要在正則表達式中。僞代碼:
function check(number):
array areaCodes = array(8, 10, 12, 981)
if !number ~= '^\d{10,11}$':
return false
foreach in areaCodes as code:
if (substring(number, 0, length(code) - 1) == code) return true
return false
你可能需要把不同的情況(即區號長度)分開,如:
^(8\d{9,10}|(10|12)\d{8,9}|981\d{7,8})$
或者你使用look-ahead or look-behind assertions:
^(?=\d{10,11})…$
嘗試我爲荷蘭製造了2位和3位地區代碼,分別有7位和6位用戶號碼(以及一些未完成的其他長度路線):
\+31(?:(?:(?#AREA2D)1[035]|2[0346]|3[03568]|4[0356]|5[0358]|7\d)[2-8]\d{6}|(?:(?#AREA3D)11[134578]|16[124-8]|17[24]|18[0-467]|22[2346-9]|25[125]|29[479]|31[3-8]|32[01]|34[1-8]|41[12368]|47[58]|48[15-8]|49[23579]|51[1-9]|52[1-5789]|54[13-8]|56[126]|57[0-3578]|59[1-9])[2-8]\d{5}|(?:(?#OTHER10D)6[1-68]|8[4578]|91)\d{7})
〜270區號在瑞典。您的解決方案是按區域代碼。 http://en.wikipedia.org/wiki/Telephone_numbers_in_sweden – ms80 2010-03-25 17:21:52
耐心地回答+1問題。 – 2010-03-25 17:42:07