Java开发:手机电话号码校验

Posted 张亮java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java开发:手机电话号码校验相关的知识,希望对你有一定的参考价值。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
 
public class PhoneFormatCheckUtils {
 
    /**
     * 大陆号码或香港号码均可
     */
    public static boolean isPhoneLegal(String str) throws PatternSyntaxException {
        return isChinaPhoneLegal(str) || isHKPhoneLegal(str);
    }
 
    /**
     * 大陆手机号码11位数,匹配格式:前三位固定格式+后8位任意数
     * 此方法中前三位格式有:
     * 13+任意数
     * 145,147,149
     * 15+除4的任意数(不要写^4,这样的话字母也会被认为是正确的)
     * 166
     * 17+3,5,6,7,8
     * 18+任意数
     * 198,199
     */
    public static boolean isChinaPhoneLegal(String str) throws PatternSyntaxException {
        // ^ 匹配输入字符串开始的位置
        // d 匹配一个或多个数字,其中  要转义,所以是 \d
        // $ 匹配输入字符串结尾的位置
        String regExp = "^((13[0-9])|(14[5,7,9])|(15[0-3,5-9])|(166)|(17[3,5,6,7,8])" +
                "|(18[0-9])|(19[8,9]))\d{8}$";
        Pattern p = Pattern.compile(regExp);
        Matcher m = p.matcher(str);
        return m.matches();
    }
 
    /**
     * 香港手机号码8位数,5|6|8|9开头+7位任意数
     */
    public static boolean isHKPhoneLegal(String str) throws PatternSyntaxException {
        // ^ 匹配输入字符串开始的位置
        // d 匹配一个或多个数字,其中  要转义,所以是 \d
        // $ 匹配输入字符串结尾的位置
        String regExp = "^(5|6|8|9)\d{7}$";
        Pattern p = Pattern.compile(regExp);
        Matcher m = p.matcher(str);
        return m.matches();
    }
    
}

如下是额外的正整数的校验规则

/**
     *
     * 判断是否是正整数的方法
     */
    public static boolean isNumeric(String string){
        Pattern pattern = Pattern.compile("[0-9]+");
        return pattern.matcher(string).matches();   
    }

 

以上是关于Java开发:手机电话号码校验的主要内容,如果未能解决你的问题,请参考以下文章

判断手机号正则表达式

javaScript手机号码校验工具类PhoneUtils详解

JS正则表达式实现手机号码和省份证号码校验

手机验证发送及其验证(基于springboot+redis)保姆级

js 手机号码和电话号码正则校验

js实现手机号码和身份证号码校验