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

时间:2014-02-17 07:37:19

标签: java regex validation

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

+1-646-222-3333

我写了像

这样的表达方式
^(+)([0-9]{3}-[0-9]{3}-[0-9]{4})

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

5 个答案:

答案 0 :(得分:3)

试试这个:

    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");
    }

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

这有效 -

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

测试here

答案 3 :(得分:0)

这样做

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

答案 4 :(得分:0)

^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$