首页 文章

正则表达式国际电话号码允许空格

提问于
浏览
1

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

这是我到目前为止:

^\+?( |\(|\))*?\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

我不知道该如何解决这个问题 .

谢谢 .

1 回答

  • 0

    以下正则表达式可以帮到你 .

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

    DEMO

    要么

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

    DEMO

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

相关问题