2015-02-09 234 views
0

我发现这个javascript正则表达式来验证美国电话号码可以写入的不同格式。但它也有问题:它不能匹配这个组中的第二条规则:正则表达式美国电话号码验证

三个数字的第一组,知道的区号开始与多家 2-9,其次是0-8,然后任何第三位数字。

它接受9,而它应该只接受来自(0-8)的数字。这正则表达式显示了一切:http://regexr.com/3ackc

/^(1[- .]?)?(\([2-9]\d{2}\)[. -]?|[2-9]\d{2}[. -]?)[2-9]\d{2}[- .]?\d{4}$/gm 

回答

0

我没有充分意识到美国的电话号码的符号和详细的限制,所以我提到Wikipedia和想出了这个:

/^[2-9][0-8]\d\-?[2-9]([02-9]{2}|[02-9]\d||\d[02-9])\-?\d{4}$/g 

Matches in Regexhelper