正则表达式验证错误

时间:2010-05-20 06:42:27

标签: javascript regex

我正在尝试验证美国手机号码,因为我使用的是预先构建的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我真的不知道什么是错的,所以我期待一些帮助。

2 个答案:

答案 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)

看起来原始正则表达式会转义-符号,如下所示:\-

我没有看到你在第二个例子中这样做。