jquery验证插件的自定义规则(正则表达式)

时间:2012-03-02 15:45:31

标签: jquery regex

你能帮我写两条检查phoneNumber的规则吗? 第一条规则:从+7或8开始,然后是任意十个数字。 例子:

+77017223457 - valid
77017223457 -not valid
87017223457 - valid

第二条规则:从+7或8开始,然后从集合中开出三个数字:
 {700,701,702,705,707,712,713,717,718,721,725,726,727,777}然后任意七个数字。

示例:

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

感谢。

3 个答案:

答案 0 :(得分: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]+$

答案 1 :(得分: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

答案 2 :(得分:1)

更紧凑:

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