【问题标题】:Regex International Phone numbers allowing white spaces允许空格的正则表达式国际电话号码
【发布时间】:2015-03-29 11:16:50
【问题描述】:

我正在尝试使用正则表达式来验证国际电话号码。

这是我目前所拥有的:

 ^\+?( |\(|\))*?\d{8,14}$

我的目标是允许的总位数是 8-14。此外,在数字之间、之后或之前允许尽可能多的空格和破折号。

例子:

12345678901234
123    456789  0 1 2 3 4
+1       2345678901234
(12)  3   4   56  7  8   9 01234
1-2-3-4-5-6-7 8 9 0 123     4 

我不知道该怎么做。

谢谢。

【问题讨论】:

  • @Avinash 你去吧。
  • 你运行的是哪种语言?
  • 你一定是个正则表达式之神哈哈。非常感谢 Avinash Raj。
  • 不,有很多比我强大的正则表达式大神 :-)

标签: regex whitespace phone-number


【解决方案1】:

下面的正则表达式会帮助你。

^(?=(?:\D*\d\D*){8,14}$)[ -]*\+?[ -]*(?:\((?:[ -]*\d)+[ -]*\))?[- \d]*

DEMO

^(?=(?:\D*\d\D*){8,14}$)[- \d()+]*

DEMO

\D 匹配任何非数字字符。 (?=(?:\D*\d\D*){8,14}$) 断言我们要匹配的字符串必须包含 8 到 14 位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-22
    • 2011-08-27
    • 2019-05-30
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    相关资源
    最近更新 更多