2012-03-02 17 views
0

phoneNumberをチェックする2つのルールを書く手助けはできますか?
最初のルール:+7または8で始まり、次に10個の数字。 例:jquery検証プラグイン(正規表現)のカスタムルール

+77017223457 - valid 
77017223457 -not valid 
87017223457 - valid 

第ルール:
{700、701、702、705、707、712、713、717、718721、725、726、:セットから+7又は8その後、3つの数字で始まり727、777}、次に任意の7つの数字。

例:

+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

+0

@userおっと、あなたは "seven"と言って、私は "いくつか"を読んでいます。 :) – Tomalak

1

を少し使用するにはコンパクト:

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