正则表达式]Java 手机号码/座机号码验证(可与区号匹配,空格短横线分割手机号码和座机号码) - 其次,验证手机号码
最编程
2024-04-23 12:37:17
...
public boolean phoneValidate(String phoneNumber){
if (phoneNumber != null && !phoneNumber.isEmpty()){
boolean matches = Pattern.matches(
"^1[3-9]\\d{9}$|" +
"^1[3-9]\\d{1}[-\\s]\\d{4}[-\\s]\\d{4}$|" +
"^\\(1[3-9]\\d{1}\\)\\d{4}-\\d{4}$|" +
"^(?:\\(\\+\\d{2}\\)|\\+\\d{2})(\\d{11})$|" +
"^0\\d{3}-\\d{7}$|" +
"^0\\d{2}-\\d{8}$", phoneNumber);
return matches;
}
return false;
}
这个代码是一个用于校验手机号的正则表达式验证函数,它可以匹配多种不同格式的手机号。下面是该正则表达式的解释:
"^1[3-9]\\d{9}$|"
// 匹配以1开头的11位数字手机号格式如:13185217412
"^1[3-9]\\d{1}[-\\s]\\d{4}[-\\s]\\d{4}$|"
// 匹配以1开头的带区号的手机号,格式如:131 8521 7412 或 131-8521-7412
"^\\(1[3-9]\\d{1}\\)\\d{4}-\\d{4}$|"
// 匹配以1开头的带区号的手机号,格式如:(131) 8521-7412
"^(?:\\(\\+\\d{2}\\)|\\+\\d{2})(\\d{11})$|"
// 匹配国际格式的手机号,如:(+86)13645678906 或 +8613645678906
"^0\\d{3}-\\d{7}$|"
// 匹配以0开头的带四位区号的座机号,格式如:0755-1234567
"^0\\d{2}-\\d{8}$"
// 匹配以0开头的带三位区号的座机号,格式如:010-12345678
这个正则表达式使用了多个正则模式,每个模式使用|
分隔,表示多个模式中的任何一个匹配即可。这样,它可以用于校验多种手机号和座机号的格式,包括:
- 以1开头的11位数字手机号。
- 以1开头的带区号的手机号,可以是使用空格或短横线分隔的形式。
- 以1开头的带区号的手机号,区号使用圆括号括起来。
- 国际格式的手机号,以两位数的国际区号开头,后接11位数字手机号。
- 以0开头的带区号的座机号,格式如:四位区号-电话号码。
- 以0开头的带区号的座机号,格式如:三位区号-电话号码。
该函数返回一个布尔值,指示输入的phoneNumber是否匹配这些正则表达式中的任何一个。如果匹配,则返回true;否则,返回false。
这个正则表达式的目的是用于验证不同格式的电话号码,包括移动电话和座机号码。
下一篇: iOS 手机号码和固定电话常规匹配