我有一个经过验证的手机号码列表,我必须以相同的方式显示:
所需的格式是:+34 666 111 222
String telefonos =
"666444555,
666-444-555,
666 44 45 55,
666-44-45-55,
+34666555444,
0034666555444";
Pattern pattern = Pattern.compile(""); // aqui es donde me clavo.
Matcher matcher = pattern.matcher(telefonos);
while (matcher.find())
System.out.println(matcher.group());
预期输出:
+34 666 444 555
+34 666 444 555
+34 666 444 555
+34 666 444 555
+34 666 555 444
+34 666 555 444
试试下面的正则表达式:
如果您打算经常使用该表达式,建议使用常量以避免每次都重新编译该表达式,即:
离开:
与其他问题相同,我建议您使用
libphonenumber
(Google's library to validate phone numbers)。与您自己的实现相比,它有很多优点,例如您不必自己维护它,并且无论用户如何输入它,它都会以国际格式为您提供数字。如何使用它的一个例子是:
现在有许多方法,但最重要的是:
在这里,您将始终能够拥有您想要的国际格式:
当然,我总是建议您在询问其国际格式之前先询问该号码是否有效的问题。
要查看演示 ,您可以转到此处。