我需要一个正则表达式与javascript/jquery一起使用,它符合这些规则..。
1
或+1
,则应忽略它。0-9
、()
和-
我在斯尼普普尔找到了一个正则表达式(第一个),但它不起作用。首先,我甚至不确定这个准则是否符合我的规则。其次,它允许像&^%$$#%^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;
})
发布于 2012-02-01 19:28:07
当不使用文字形式( / regex / )时,需要转义regex字符串。试一试:
var regex = /^(?:\+?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(regex.test($('#phone').val()){ ... }
发布于 2012-02-01 19:24:36
如果有前导1或+1,则应忽略它将包括10位数字,字段中允许的有效字符是.0-9,(),和-
可以与如下表达式相匹配:
/^(?:\+?1)?[()-]*(?:\d[()-]*){10}$/
https://stackoverflow.com/questions/9101624
复制相似问题