【发布时间】:2015-02-22 06:20:37
【问题描述】:
我想以这种方式验证电话号码:-
该字段应允许用户输入字符并应自动更正。因此“+1-908-528-5656”的条目不会为用户创建错误,它只会更改为“19085285656”。
我也想在 9 到 11 之间编号。
我也尝试了下面的代码,但没有得出最终的解决方案:
final String PHONE_REGEX = "^\\+([0-9\\-]?){9,11}[0-9]$";
final Pattern pattern = Pattern.compile(PHONE_REGEX);
String phone = "+1-908-528-5656";
phone=phone.replaceAll("[\\-\\+]", "");
System.out.println(phone);
final Matcher matcher = pattern.matcher(phone);
System.out.println(matcher.matches());
【问题讨论】:
-
你现在的代码有什么问题?难道你不能用
{9,11}替换{9,10}来解决你的问题吗? -
如果你让这个工作,你会惹恼别人。
-
它可以工作,但代码没有优化,应该有一个最好的(可以在一行中完成)方法来做到这一点。
标签: java regex validation