用于验证电话号码的正则表达式模式

时间:2013-09-19 20:57:37

标签: c# regex regex-group

我有一个输入字符串(“我的电话号码是860-678 - 2345”)。从输入字符串我需要使用Regex验证电话号码。

我使用的是以下模式,但如果电话号码中包含空格,则无法使用。

[(]?[2-9]{1}[0-9]{2}[)-. ,]?[2-9]{1}[0-9]{2}[-. ,]?[0-9]{4}

感谢。

4 个答案:

答案 0 :(得分:1)

以下正则表达式:

(\([2-9]\d\d\)|[2-9]\d\d) ?[-.,]? ?[2-9]\d\d ?[-.,]? ?\d{4}

匹配以下所有内容:

860-678-2345
(860) 678-2345
(860) 678 - 2345

也可能是相当数量的。细分:

  • (\([2-9]\d\d\)|[2-9]\d\d) - 匹配数字的第一部分,带或不带括号
  •  ?[-.,]? ? - 带或不带周围空格的连字符,句号(或我们英国人的句号)或逗号。
  • [2-9]\d\d - 匹配数字的第二部分。
  • \d{4} - 匹配数字的最后部分。

\d\d[0-9]{2}相同;前者略短,因此提高了可读性。同样,[2-9][2-9]{1}是等效的; {1}只是意味着“前一种模式的一个实例”,无论如何都是给定的。

答案 1 :(得分:0)

您可以在分离的角色之前和之后单独检查空格。

[(]?[2-9]{1}[0-9]{2}[ ]?[)-.,]?[ ]?[2-9]{1}[0-9]{2}[ ]?[-.,]?[ ]?[0-9]{4}

请记住,这实际上并不匹配parens所以像(234-567, 1234这样的东西会匹配。因此,如果您想要更严格的匹配,您将需要更复杂的正则表达式或使用其他东西对验证进行编码。

答案 2 :(得分:0)

最好的办法是首先取消所有空白区域,然后,您可以轻松地使用您已完成的RE验证您的号码。

答案 3 :(得分:0)

这可能会对您有所帮助:

(?\ d {3})? - ? * \ d {3} - ? * - ?\ d {4}

Refer: Regular Expression Liberary