欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

正则表达式]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. 以1开头的11位数字手机号。
  2. 以1开头的带区号的手机号,可以是使用空格或短横线分隔的形式。
  3. 以1开头的带区号的手机号,区号使用圆括号括起来。
  4. 国际格式的手机号,以两位数的国际区号开头,后接11位数字手机号。
  5. 以0开头的带区号的座机号,格式如:四位区号-电话号码。
  6. 以0开头的带区号的座机号,格式如:三位区号-电话号码。

该函数返回一个布尔值,指示输入的phoneNumber是否匹配这些正则表达式中的任何一个。如果匹配,则返回true;否则,返回false。

这个正则表达式的目的是用于验证不同格式的电话号码,包括移动电话和座机号码。