繁体   English   中英

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

[英]Regex pattern for Validating phone number

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

我正在使用以下模式,但是如果电话号码中包含空格,则该模式将不起作用。

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

谢谢。

以下正则表达式:

(\([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}仅表示“先前模式的一个实例”,无论如何都是给定的。

您可以在分离的字符之前和之后分别检查空格。

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

请记住,这实际上不会匹配括号,因此类似(234-567, 1234匹配。因此,如果您想要更严格的匹配,则将需要更复杂的正则表达式或使用其他代码来编写验证。

最好的办法是先去除所有空白,然后,您可以轻松地使用已完成的RE验证您的数字。

这可能对您有帮助:

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

参考:正则表达式自由

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM