嗨我需要正则表达式来验证以下格式的电话号码
+1-646-222-3333
我写了像
这样的表达方式^(+)([0-9]{3}-[0-9]{3}-[0-9]{4})
但它不起作用。我能知道我做错了吗?
答案 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)
答案 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}$