【问题标题】:Regex for phone number in international format国际格式电话号码的正则表达式
【发布时间】:2014-11-05 15:21:49
【问题描述】:

我需要编写一个只匹配这种格式的正则表达式

+420 000 000 000
+420000000000
420 000 000 000
420000000000

它不能匹配字符串任何部分的任何 a-z 字符,只能匹配数字、空格和开头的“+”。

【问题讨论】:

    标签: php regex validation symfony


    【解决方案1】:

    你可以试试下面的正则表达式,

    ^\+?\d{3} ?\d{3} ?\d{3} ?\d{3}$
    

    DEMO

    • ^ 断言我们处于起步阶段。
    • \+? 可选 +
    • \d{3} 精确匹配三位数字。
    • <space>? 可选空格
    • $ 断言我们已经结束了。

    【讨论】:

    • 工作完美,如果我想再添加一个?
    • 0905 222 222 例如?
    • @user1999739 我的答案/正则表达式应该适用于您的示例(0905 222 222)!
    【解决方案2】:

    这个正则表达式应该适合你:

    $mobileNumber = "0905 222 222";
    
     if ( preg_match("/^(\+?)([0-9] ?){9,20}$/", $mobileNumber) )
                echo "matches!";
    

    【讨论】:

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