特定格式的电话号码验证

时间:2016-09-07 12:12:27

标签: javascript regex

我有以下正则表达式检查不同格式的有效电话号码,它还支持阿拉伯数字:

/^(\+?\s{0,2}([0-9\u0660-\u0669]{1,3}))?[-,.\s]{0,2}\(?[0-9\u0660-\u0669]{1,5}\)?[-,.\s]{0,2}[0-9\u0660-\u0669]{1,5}[-,.\s]{0,2}[0-9\u0660-\u0669]{1,6}\s{0,2}\+?/

但是对于其中一个有效数字+(91)-20-xxxxxxxx

,这将返回false

1 个答案:

答案 0 :(得分:1)

+匹配的第一个可选组需要可选的()

^(\+?\(?\s{0,2}[0-9\u0660-\u0669]{1,3}\)?)?[-,.\s]{0,2}\(?[0-9\u0660-\u0669]{1,5}\)?[-,.\s]{0,2}[0-9\u0660-\u0669]{1,5}[-,.\s]{0,2}[0-9\u0660-\u0669]{1,6}\s{0,2}\+?
     ^^^                              ^^^

请参阅regex demo

注意你可能会重新检查模式,尾随\+?看起来很可疑,并且模式末尾没有$(字符串锚的结尾)(如果你打算匹配整个字符串,你需要那个锚。)