我的 JavaScript 正则表达式/正则表达式语法有什么问题?
我需要一个正则表达式与符合这些规则的 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;
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当您不使用文字形式( /[regex]/ )时,您需要转义正则表达式字符串。试试这个:
When you're not using the literal form ( /[regex]/ ), you need to escape the regex string. Try this instead:
可以与如下表达式匹配:
That could be matched with an expression like: