【发布时间】:2012-02-24 11:24:50
【问题描述】:
我需要一个正则表达式与符合这些规则的 javascript/jquery 一起使用...
- 它将包括 10 位数字
- 如果有前导
1或+1则应忽略 - 字段中允许的有效字符是...
0-9、()和-
我在Snipplr(第一个)找到了一个正则表达式,但它不起作用。首先,我什至不确定该正则表达式是否符合我的规则。其次,它允许像&^%$$#%^adfafsd 这样的输入。我相信错误出在我的代码中,而不是正则表达式。例如,表达式周围应该有引号吗?
这是验证电话字段的代码...
$('#phone').bind('blur', function() {
var pattern = new RegExp("^(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})$");
if(pattern.test($('#phone').val())){
$("#phone").addClass("error");
return false;
}else{
$("#phone").removeClass("error");
return true;
}
return true;
})
【问题讨论】:
-
您是否正在寻找它来匹配任何电话号码?当您包含破折号和括号时,电话号码格式有很多可能性,当您进入国际号码和分机时,甚至更多。否则你的代码看起来不错。正则表达式也可以。
标签: javascript jquery regex syntax