我做了一个正则表达式来匹配这些电话号码:
555-555-5555
(555)555-5555
(555) 555-5555
555 555 5555
5555555555
1 555 555 5555
有效。但我不想匹配没有右括号的数字:
555) 555-5555
这是我的正则表达式:
^(1{1})?(\ |-)?(\()?([0-9]{3})(\ |\)|\-)?(\ |\)|\-)?([0-9]{3})(\ |-)?([0-9]{4})$
我该怎么做?
答案 0 :(得分:0)
您的正则表达式应用于哪种类型的内容?
因为您可能有不同的解决方案。
如果您所在的字段仅包含电话号码,并且想要验证它们,则可以从除数字之外的所有字符开始,并且具有很好的值来处理。
答案 1 :(得分:0)
您必须同时支持或括号:
(\(\d{3}\)|\d{3})
所有在一起:
^1?[ -]?(\(\d{3}\)|\d{3})[ -]?\d{3}[ -]?\d{4}$
...删除了不必要的括号,添加了更简单的字符类。
请参阅demo。
答案 2 :(得分:0)