我试图验证英国电话号码,
我正在使用这个正则表达式:
^(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?$
这与几乎可能的数字匹配很好,但这些不匹配:
+44(0)7518 123 456或+44(0)7518123456
任何人都知道如何修改它来实现它吗?
问候!
答案 0 :(得分:0)
你可以简化这一点。查看此regex101以查看它是否符合您的需求: http://regex101.com/r/xP6lE7/1
^(\+?44)?(\(\d+\))?[\d ]+(#\d+)?$
答案 1 :(得分:0)
这匹配所有边缘情况:
^(\+?44)?(?=(.*?\d){10,})( ?\(\d+\))?[ \d]+(#\d+)?$
前瞻断言至少有10位不包括国家前缀。
请参阅demo,了解您提到的所有边缘情况。