【问题标题】:Regular expression for phone number validation电话号码验证的正则表达式
【发布时间】:2014-02-17 07:37:18
【问题描述】:

您好,我需要正则表达式来验证以下格式的电话号码

+1-646-222-3333

我写过类似的表达

^(+)([0-9]{3}-[0-9]{3}-[0-9]{4})

但它不起作用。我能知道我哪里做错了吗?

【问题讨论】:

  • 您可以使用 Google 的 libphonenumber,它专门用于处理电话号码

标签: java regex validation


【解决方案1】:

试试这个:

    String str = "+1-646-222-3333";
    if(str.matches("\\+\\d-\\d{3}-\\d{3}-\\d{4}")) {
        System.out.println("Valid number");
    }else {
        System.out.println("Invalid number");
    }

【讨论】:

  • 简直太棒了thanx :)
【解决方案2】:

我认为你一开始就错过了 1。如果你不想允许任何尾随字符串,那么你应该标记行尾$.

^(\+)([0-9]-[0-9]{3}-[0-9]{3}-[0-9]{4})$
       ^

编辑:如上所述,+ 必须转义。

【讨论】:

  • 另外,+ 必须转义。
【解决方案3】:

这行得通-

^(\+)([0-9]-[0-9]{3}-[0-9]{3}-[0-9]{4})

测试here

【讨论】:

    【解决方案4】:

    这样做

    ^(\\+1)-([0-9]{3}-[0-9]{3}-[0-9]{4})
           ^
          put this
    

    【讨论】:

      【解决方案5】:
      ^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-18
        • 2014-06-25
        • 2012-02-13
        • 1970-01-01
        • 2016-12-23
        相关资源
        最近更新 更多