Java最新版正則表達式檢測手機號


1、目前來源:

下面就是簡單的java工具類,主要的還是工具類中的正則表達式,原來的工具來來源的網上,在2020年-06月我手動修改為最新的中國大陸手機號檢測工具類。

具體修改路徑或方法:

根據百度百科或者去運營商官網查詢號段,然后進行修改即可:我這里使用的百度百科手機號

2020年-06月的狀態(注意時間哦!)

 

 

2、實現檢測類

 

package com.qingclass.crm.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

/**
 * @author niunafei
 * @function
 * @email niunafei0315@163.com
 * @date 2020/6/5  2:19 PM
 */
public class PhoneFormatCheckUtils {
    /**
     * ^ 匹配輸入字符串開始的位置
     * \d 匹配一個或多個數字,其中 \ 要轉義,所以是 \\d
     * $ 匹配輸入字符串結尾的位置
     */
    private static final Pattern HK_PATTERN = Pattern.compile("^(5|6|8|9)\\d{7}$");
    private static final Pattern CHINA_PATTERN = Pattern.compile("^((13[0-9])|(14[0,1,4-9])|(15[0-3,5-9])|(16[2,5,6,7])|(17[0-8])|(18[0-9])|(19[0-3,5-9]))\\d{8}$");
    private static final Pattern NUM_PATTERN = Pattern.compile("[0-9]+");

    /**
     * 大陸號碼或香港號碼均可
     */
    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 {
        Matcher m = CHINA_PATTERN.matcher(str);
        return m.matches();
    }

    /**
     * 香港手機號碼8位數,5|6|8|9開頭+7位任意數
     */
    public static boolean isHKPhoneLegal(String str) throws PatternSyntaxException {

        Matcher m = HK_PATTERN.matcher(str);
        return m.matches();
    }

    /**
     * 判斷是否是正整數的方法
     */
    public static boolean isNumeric(String string) {
        return NUM_PATTERN.matcher(string).matches();
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM