随着手机号码段的不断增加,以前网上的手机号码验证函数都不能那么完美的支持了,这里特为大家准备的一个简单的正则与手机验证的函数分析。代码直接来自项目中。。。
$.validator.addMethod("phone",function(value, element){
var tel = /^((\d{11})|(\d{12})|(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}(-\d{1,4})?|(\d{7,8})|(\d{4}|\d{3})-(\d{7,8}))$/;
return this.optional(element) || (tel.test(value));
} );
jQuery.validator.addMethod("mobile", function(value, element) {
var length = value.length;
// 长度为11,以13,14,15,17,18开头的
return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(14[0-9]{1})|(17[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/.test(value));
});
两段代码,上面那一段是对于电话号码的验证,下面这段是对应手机号码的验证 。代码解释:
\d 代表一个数字
例如:1或2或3,单个数字
如果是多个可以用\d*
\d{7,8} 代表7-8位数字(表示电话号码)
例如:12345678
\d{3,} 代表分机号码
例如:123,12345
{3,}表示最低3个数字,可以更多
0\d{2,3} 代表区号
例如:021
[0\+]\d{2,3} 代表国际区号
如果使用减号连接,完整的应该是
/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/
例如:1或2或3,单个数字
如果是多个可以用\d*
\d{7,8} 代表7-8位数字(表示电话号码)
例如:12345678
\d{3,} 代表分机号码
例如:123,12345
{3,}表示最低3个数字,可以更多
0\d{2,3} 代表区号
例如:021
[0\+]\d{2,3} 代表国际区号
如果使用减号连接,完整的应该是
/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/