我正在尝试验证美国手机号码,因为我使用的是预先构建的javascript验证库,我只是将this正则表达式验证替换为验证库附带的前一个验证库。
之前的验证正则表达式:
"telephone":{
"regex":"/^[0-9\-\(\)\ ]{10,10}$/",
"alertText":"* Invalid phone number"},
这与2126661234
类似,但不符合美国标准。
我改变之后:
"telephone":{
"regex":"/^[2-9]\d{2}-\d{3}-\d{4}$/",
"alertText":"* Invalid phone number"},
现在每个条目我都会收到错误,即使我输入212-666-1234
我真的不知道什么是错的,所以我期待一些帮助。
答案 0 :(得分:4)
你需要逃避反斜杠
"telephone":{
"regex":"/^[2-9]\\d{2}-\\d{3}-\\d{4}$/",
"alertText":"* Invalid phone number"},
/^[2-9]\d{2}-\d{3}-\d{4}$/
仅适用于
var r = /^[2-9]\d{2}-\d{3}-\d{4}$/;
当您使用字符串初始化正则表达式时,您应该转义反斜杠
var r = new RegExp("^[2-9]\\d{2}-\\d{3}-\\d{4}$");
答案 1 :(得分:0)
看起来原始正则表达式会转义-
符号,如下所示:\-
。
我没有看到你在第二个例子中这样做。