2012-03-02 123 views
0

你能幫我寫兩條檢查phoneNumber的規則嗎?
第一條規則:以+7或8開始,然後是任意十個數字。 實例:jQuery驗證插件(正則表達式)的自定義規則

+77017223457 - valid 
77017223457 -not valid 
87017223457 - valid 

第二規則:開始與來自集合7個或8然後三個數字:
{700,701,702,705,707,712,713,717,718721,725,726, 727,777}然後是七個數字。

例子:

+77074446255 - valid 
+77034446255 - not valid (no 703 in the set) 

感謝。

回答

1
var phone = $("#phoneNumber").val() 
var regex = /^((\+7)|8)(700|701|702|705|707|712|713|717|718,721|725|726|727|777)[0-9]{7}$/; 
if(regex.test(phone)) 
    // Phone is valid 
else 
    // Phone is invalid 
1
(?:\+7|8)(?:70[0-2]|705|707|71[23]|71[78]|721|72[5-7]|777)[0-9]+ 

,或者壓縮較小但更明顯:

(?:\+7|8)(?:700|701|702|705|707|712|713|717|718|721|725|726|727|777)[0-9]+ 

爲了確保這不是一個部分匹配,使用^$

^(?:\+7|8)(?:700|etc|etc)[0-9]+$ 
+0

你正則表達式匹配的「7701722345」。但是,+7之後有9個數字(必須是10) – user348173 2012-03-02 16:02:02

+0

@user哎呀,你說「七」,我讀「幾個」。 :) – Tomalak 2012-03-02 16:14:41

1

一點點更緊湊:

/^(?/\+7|8)7(?:0[01257]|1[2378]|2[1567]|77)\d{7}$/