【发布时间】: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-646-222-3333
我写过类似的表达
^(+)([0-9]{3}-[0-9]{3}-[0-9]{4})
但它不起作用。我能知道我哪里做错了吗?
【问题讨论】:
标签: java regex validation
试试这个:
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。如果你不想允许任何尾随字符串,那么你应该标记行尾$.
^(\+)([0-9]-[0-9]{3}-[0-9]{3}-[0-9]{4})$
^
编辑:如上所述,+ 必须转义。
【讨论】:
+ 必须转义。
【讨论】:
这样做
^(\\+1)-([0-9]{3}-[0-9]{3}-[0-9]{4})
^
put this
【讨论】:
^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$
【讨论】: