我有以下正则表达式检查不同格式的有效电话号码,它还支持阿拉伯数字:
/^(\+?\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
答案 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
注意你可能会重新检查模式,尾随\+?
看起来很可疑,并且模式末尾没有$
(字符串锚的结尾)(如果你打算匹配整个字符串,你需要那个锚。)