ValidateUtil常用驗證工具類,如手機、密碼、郵箱等


平時項目中一些常用的驗證,如手機、密碼、郵箱、身份證等

package cn.com.ssk.util.utils;

import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;

/**  
 * 常用的一些驗證,如手機、移動號碼、聯通號碼、電信號碼、密碼、座機、 郵政編碼、郵箱、年齡、身份證、URL、QQ、漢字、字母、數字等
 */
public class ValidateUtil {

    /** 手機號規則  */
    public static final String MOBILE_PATTERN="^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))(\\d{8})$";
    /** 中國電信號碼格式驗證 手機段: 133,153,180,181,189,177,1700,173  **/  
    private static final String CHINA_TELECOM_PATTERN = "(?:^(?:\\+86)?1(?:33|53|7[37]|8[019])\\d{8}$)|(?:^(?:\\+86)?1700\\d{7}$)";  
    /** 中國聯通號碼格式驗證 手機段:130,131,132,155,156,185,186,145,176,1707,1708,1709,175 **/  
    private static final String CHINA_UNICOM_PATTERN = "(?:^(?:\\+86)?1(?:3[0-2]|4[5]|5[56]|7[56]|8[56])\\d{8}$)|(?:^(?:\\+86)?170[7-9]\\d{7}$)"; 
    /** 中國移動號碼格式驗證 手機段:134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705 **/  
    private static final String CHINA_MOVE_PATTERN = "(?:^(?:\\+86)?1(?:3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\\d{8}$)|(?:^(?:\\+86)?1705\\d{7}$)"; 
    /** 密碼規則(6-16位字母、數字) */
    public static final String PASSWORD_PATTERN="^[0-9A-Za-z]{6,16}$";
    /** 固號(座機)規則 */
    public static final String LANDLINE_PATTERN="^(?:\\(\\d{3,4}\\)|\\d{3,4}-)?\\d{7,8}(?:-\\d{1,4})?$";  
    /** 郵政編碼規則 */
    public static final String POSTCODE_PATTERN = "[1-9]\\d{5}" ;
    /** 郵箱規則 */
    public static final String EMAIL_PATTERN = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$" ;
    /** 年齡規則 1-120之間  */
    public static final String AGE_PATTERN="^(?:[1-9][0-9]?|1[01][0-9]|120)$";
    /** 身份證規則 */
    public static final String IDCARD_PATTERN="^\\d{15}|\\d{18}$" ;
    /** URL規則,http、www、ftp */
    public static final String URL_PATTERN = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?" ;
    /** QQ規則 */
    public static final String QQ_PATTERN = "^[1-9][0-9]{4,13}$" ;
    /** 全漢字規則 */
    public static final String CHINESE_PATTERN = "^[\u4E00-\u9FA5]+$" ;
    /** 全字母規則 */
    public static final String STR_ENG_PATTERN="^[A-Za-z]+$";
    /** 整數規則 */
    public static final String INTEGER_PATTERN = "^-?[0-9]+$" ;
    /** 正整數規則 */
    public static final String POSITIVE_INTEGER_PATTERN = "^\\+?[1-9][0-9]*$" ;
    
    
    /**
    * @Description: 驗證手機號碼格式 
    * @param mobile 手機號碼
    * @return boolean
     */
    public static boolean validateMobile(String mobile) {
        if (StringUtils.isEmpty(mobile)){
            return Boolean.FALSE;
        }
        return mobile.matches(MOBILE_PATTERN);
    }
    
    /**
     * 驗證是否是電信手機號,133、153、180、189、177
     * @param mobile 手機號
     * @return boolean
     */
    public static boolean validateTelecom(String mobile){
        if(StringUtils.isEmpty(mobile)){
            return Boolean.FALSE ;
        }
        return mobile.matches(CHINA_TELECOM_PATTERN) ;
    }
    
    /**
     * 驗證是否是聯通手機號 130,131,132,155,156,185,186,145,176,1707,1708,1709,175
     * @param mobile 電話號碼
     * @return boolean
     */
    public static boolean validateUnionMobile(String mobile){
        if(StringUtils.isEmpty(mobile)){
            return Boolean.FALSE ;
        }
        return mobile.matches(CHINA_UNICOM_PATTERN) ;
    }
    
    /**
     * 驗證是否是移動手機號
     * @param mobile 手機號 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
     * @return boolean
     */
    public static boolean validateMoveMobile(String mobile){
        if(StringUtils.isEmpty(mobile)){
            return Boolean.FALSE ;
        }
        return mobile.matches(CHINA_MOVE_PATTERN) ;
    }
    
    /**
    * @Description: 驗證密碼格式  6-16 位字母、數字
    * @param pwd 密碼
    * @return boolean
     */
    public static boolean validatePwd(String pwd) {
        if (StringUtils.isEmpty(pwd)){
            return Boolean.FALSE;
        }
        return Pattern.matches(PASSWORD_PATTERN, pwd);
    }
    
    /**
     * 驗證座機號碼,格式如:58654567,023-58654567
     * @param landline 固話、座機
     * @return boolean
     */
    public static boolean validateLandLine(final String landline) {  
        if(StringUtils.isEmpty(landline)){
            return Boolean.FALSE;
        }
        return landline.matches(LANDLINE_PATTERN);
     } 
    
    /**
     * 驗證郵政編碼
     * @param postCode 郵政編碼
     * @return boolean
     */
    public static boolean validatePostCode(final String postCode){
        if(StringUtils.isEmpty(postCode)){
            return Boolean.FALSE ;
        }
        return postCode.matches(POSTCODE_PATTERN) ;
    }
    
    /**
     * 驗證郵箱(電子郵件)
     * @param email 郵箱(電子郵件)
     * @return boolean
     */
    public static boolean validateEamil(final String email){
        if(StringUtils.isEmpty(email)){
            return Boolean.FALSE ;
        }
        return email.matches(EMAIL_PATTERN) ;
    }
    
    /**
     * 判斷年齡,1-120之間
     * @param age 年齡
     * @return boolean
     */
    public static boolean validateAge(final String age){
        if(StringUtils.isEmpty(age)){
            return Boolean.FALSE ;
        }
        return age.matches(AGE_PATTERN) ;
    }
    
    /**
     * 身份證驗證
     * @param idCard 身份證
     * @return boolean
     */
    public static boolean validateIDCard(final String idCard){
        if(StringUtils.isEmpty(idCard)){
            return Boolean.FALSE ;
        }
        return idCard.matches(IDCARD_PATTERN) ;
    }
    
    /**
     * URL地址驗證
     * @param url URL地址
     * @return boolean
     */
    public static boolean validateUrl(final String url){
        if(StringUtils.isEmpty(url)){
            return Boolean.FALSE ;
        }
        return url.matches(URL_PATTERN) ;
    }
    
    /**
     * 驗證QQ號
     * @param qq QQ號
     * @return boolean
     */
    public static boolean validateQq(final String qq){
        if(StringUtils.isEmpty(qq)){
            return Boolean.FALSE ;
        }
        return qq.matches(QQ_PATTERN) ;
    }
    
    /**
     * 驗證字符串是否全是漢字
     * @param str 字符串
     * @return boolean
     */
    public static boolean validateChinese(final String str){
        if(StringUtils.isEmpty(str)){
            return Boolean.FALSE ;
        }
        return str.matches(CHINESE_PATTERN) ;
    }
    
    /**
     * 判斷字符串是否全字母
     * @param str 字符串
     * @return boolean
     */
    public static boolean validateStrEnglish(final String str){
        if(StringUtils.isEmpty(str)){
            return Boolean.FALSE ;
        }
        return str.matches(STR_ENG_PATTERN) ;
    }
    
    /**
     * 判斷是否是整數,包括負數
     * @param str 字符串
     * @return boolean
     */
    public static boolean validateInteger(final String str){
        if(StringUtils.isEmpty(str)){
            return Boolean.FALSE ;
        }
        return str.matches(INTEGER_PATTERN) ;
    }
    
    /**
     * 判斷是否是大於0的正整數
     * @param str 字符串
     * @return boolean
     */
    public static boolean validatePositiveInt(final String str){
        if(StringUtils.isEmpty(str)){
            return Boolean.FALSE ;
        }
        return str.matches(POSITIVE_INTEGER_PATTERN) ;
    }
    
    
}

 


免責聲明!

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



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