Java regular expression validation utility class

  • 2020-04-01 03:45:13
  • OfStack

Share a utility class that USES regular expressions to validate phone Numbers, id Numbers, date formats, urls, emails, and so on


package com.eabax.util;
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
/**
 * Validation utility class
 * @author admin
 *
 */
public class Validation { 
    //---- constant definition & NBSP; < br / >     /**
     * Email Regular expression ="^([a-z0-9A-Z]+[-|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$";
     */
    //public static final String EMAIL = "^([a-z0-9A-Z]+[-|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$";; 
    public static final String EMAIL = "\w+(\.\w+)*@\w+(\.\w+)+";
    /**
     * Regular expressions for phone Numbers = (^(d{2,4}[-_ - - ]?)?d{3,8}([-_ - - ]?d{3,8})?([-_ - - ]?d{1,7})?$)|(^0?1[35]d{9}$) 
     */
    public static final String PHONE = "(^(\d{2,4}[-_ - - ]?)?\d{3,8}([-_ - - ]?\d{3,8})?([-_ - - ]?\d{1,7})?$)|(^0?1[35]\d{9}$)" ; 
    /**
     * Regular expressions for cell phone Numbers =^(13[0-9]|15[0-9]|18[0-9])d{8}$
     */
    public static final String MOBILE ="^(13[0-9]|15[0-9]|18[0-9])\d{8}$"; 
    /**
     * Integer Regular expression ^-?(([1-9]d*$)|0)
     */
    public static final String  INTEGER = "^-?(([1-9]\d*$)|0)"; 
    /**
     * Positive integer regular expression >=0 ^[1-9]d*|0$
     */
    public static final String  INTEGER_NEGATIVE = "^[1-9]\d*|0$"; 
    /**
     * Negative integer regular expression <=0 ^-[1-9]d*|0$
     */
    public static final String  INTEGER_POSITIVE = "^-[1-9]\d*|0$";     
    /**
     * Double Regular expression ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$
     */
    public static final String  DOUBLE ="^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$"; 
    /**
     * is Double Regular expression >=0  ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ 
     */
    public static final String  DOUBLE_NEGATIVE ="^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$"; 
    /**
     * negative Double Regular expression <= 0  ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$
     */
    public static final String  DOUBLE_POSITIVE ="^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$";  
    /**
     * Age regular expression ^(?:[1-9][0-9]?|1[01][0-9]|120)$ matching 0-120 At the age of
     */
    public static final String  AGE="^(?:[1-9][0-9]?|1[01][0-9]|120)$"; 
    /**
     * Postcode regular expression   [0-9]d{5}(?!d) domestic 6 A zip code
     */
    public static final String  CODE="[0-9]\d{5}(?!\d)";   
    /**
     * Match by number, 26 A string of English letters or underscores ^w+$
     */
    public static final String STR_ENG_NUM_="^\w+$"; 
    /**
     * Match by number and 26 A string of English letters ^[A-Za-z0-9]+$ 
     */
    public static final String STR_ENG_NUM="^[A-Za-z0-9]+"; 
    /**
     * Matched by 26 A string of English letters   ^[A-Za-z]+$
     */
    public static final String STR_ENG="^[A-Za-z]+$"; 
    /**
     * Filter special string regularization
     * regEx="[`~!@#$%^&*()+=|{}':;',\[\].<>/?~ ! @# RMB % ... &* () - +|{} 【 】 '; : "" ' . ,,? ]"; 
     */
    public static final String STR_SPECIAL="[`~!@#$%^&*()+=|{}':;',\[\].<>/?~ ! @# RMB % ... &* () - +|{} 【 】 '; : "" ' . ,,? ]"; 
    /***
     * The date of the regular Support:
     *  YYYY-MM-DD 
     *  YYYY/MM/DD 
     *  YYYY_MM_DD 
     *  YYYYMMDD
     *  YYYY.MM.DD In the form of
     */
    public static final String DATE_ALL="((^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._]?)(10|12|0?[13578])([-\/\._]?)(3[01]|[12][0-9]|0?[1-9])$)" + 
            "|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._]?)(11|0?[469])([-\/\._]?)(30|[12][0-9]|0?[1-9])$)" + 
            "|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._]?)(0?2)([-\/\._]?)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\/\._]?)(0?2)([-\/\._]?)(29)$)|(^([3579][26]00)" + 
            "([-\/\._]?)(0?2)([-\/\._]?)(29)$)" + 
            "|(^([1][89][0][48])([-\/\._]?)(0?2)([-\/\._]?)(29)$)|(^([2-9][0-9][0][48])([-\/\._]?)" + 
            "(0?2)([-\/\._]?)(29)$)" + 
            "|(^([1][89][2468][048])([-\/\._]?)(0?2)([-\/\._]?)(29)$)|(^([2-9][0-9][2468][048])([-\/\._]?)(0?2)" + 
            "([-\/\._]?)(29)$)|(^([1][89][13579][26])([-\/\._]?)(0?2)([-\/\._]?)(29)$)|" + 
            "(^([2-9][0-9][13579][26])([-\/\._]?)(0?2)([-\/\._]?)(29)$))"; 
    /***
     * The date of the regular Support:
     *  YYYY-MM-DD 
     */
    public static final String DATE_FORMAT1="(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)";
    /**
     * URL Regular expression
      * matching http www ftp
     */
    public static final String URL = "^(http|www|ftp|)?(://)?(\w+(-\w+)*)(\.(\w+(-\w+)*))*((:\d+)?)(/(\w+(-\w+)*))*(\.?(\w)*)(\?)?" + 
                                    "(((\w*%)*(\w*\?)*(\w*:)*(\w*\+)*(\w*\.)*(\w*&)*(\w*-)*(\w*=)*(\w*%)*(\w*\?)*" + 
                                    "(\w*:)*(\w*\+)*(\w*\.)*" + 
                                    "(\w*&)*(\w*-)*(\w*=)*)*(\w*)*)$";  
    /**
     * Id regular expression
     */
    public static final String IDCARD="((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})" + 
                                        "(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}" + 
                                        "[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))";
    /**
     * Organization code
     */
    public static final String JIGOU_CODE = "^[A-Z0-9]{8}-[A-Z0-9]$";
    /**
     * A string of matching Numbers   ^[0-9]+$
     */
    public static final String STR_NUM = "^[0-9]+$"; 
////---- verification method & NBSP;           < br / >     /**
     * Determines if the field is empty In return ture
     * @param str
     * @return boolean
     */
    public static synchronized boolean StrisNull(String str) { 
        return null == str || str.trim().length() <= 0 ? true : false ; 
    } 
    /**
     * Determine that the field is not empty In return ture
     * @param str
     * @return boolean
     */
    public static  boolean StrNotNull(String str) { 
        return !StrisNull(str) ; 
    } 
    /**
     * string null Turn the empty
     * @param str
     * @return boolean
     */
    public static  String nulltoStr(String str) {
        return StrisNull(str)?"":str; 
    }    
    /**
     * string null Assign default values  
     * @param str    Target string
     * @param defaut The default value
     * @return String
     */
    public static  String nulltoStr(String str,String defaut) { 
        return StrisNull(str)?defaut:str; 
    } 
    /**
     * Determines whether the field is Email In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isEmail(String str) { 
        return Regular(str,EMAIL); 
    } 
    /**
     * Determine if it is a phone number In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isPhone(String str) { 
        return Regular(str,PHONE); 
    } 
    /**
     * Determine if it is a cell phone number In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isMobile(String str) { 
        return Regular(str,MOBILE); 
    } 
    /**
     * Determine whether Url In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isUrl(String str) { 
        return Regular(str,URL); 
    }    
    /** 
     * Determines whether the field is a number The positive and negative integers Floating point number In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isNumber(String str) { 
        return Regular(str,DOUBLE); 
    } 
    /**
     * Determines whether the field is INTEGER  In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isInteger(String str) { 
        return Regular(str,INTEGER); 
    } 
    /**
     * Determines whether the field is a positive integer regular expression >=0 In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isINTEGER_NEGATIVE(String str) { 
        return Regular(str,INTEGER_NEGATIVE); 
    } 
    /**
     * Determines whether the field is a negative integer regular expression <=0 In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isINTEGER_POSITIVE(String str) { 
        return Regular(str,INTEGER_POSITIVE); 
    }    
    /**
     * Determines whether the field is DOUBLE In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isDouble(String str) { 
        return Regular(str,DOUBLE); 
    } 
    /** 
     * Determines whether the field is a positive floating point regular expression >=0 In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isDOUBLE_NEGATIVE(String str) { 
        return Regular(str,DOUBLE_NEGATIVE); 
    } 
    /**
     * Determines whether the field is a negative floating point regular expression <=0 In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isDOUBLE_POSITIVE(String str) { 
        return Regular(str,DOUBLE_POSITIVE); 
    }    
    /**
     * Determines whether the field is a date In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isDate(String str) { 
        return Regular(str,DATE_ALL); 
    } 
    /**
     * validation 2010-12-10
     * @param str
     * @return
     */
    public static  boolean isDate1(String str) { 
        return Regular(str,DATE_FORMAT1); 
    } 
    /**
     * Determines whether the field is age In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isAge(String str) { 
        return Regular(str,AGE) ; 
    } 
    /**
     * Determines if the field is too long
     * The string is returned empty fasle, More than the length of the {leng} return ture Conversely return false
     * @param str
     * @param leng
     * @return boolean
     */
    public static  boolean isLengOut(String str,int leng) {      
        return StrisNull(str)?false:str.trim().length() > leng ; 
    } 
    /**
     * Determine whether the field is an id In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isIdCard(String str) { 
        if(StrisNull(str)) return false ; 
        if(str.trim().length() == 15 || str.trim().length() == 18) { 
                return Regular(str,IDCARD); 
        }else { 
            return false ; 
        } 
    } 
    /**
     * Determines whether the field is postcode In return ture
     * @param str
     * @return boolean
     */
    public static  boolean isCode(String str) { 
        return Regular(str,CODE) ; 
    } 
    /**
     * Determines if the string is all English letters
     * @param str
     * @return boolean
     */
    public static boolean isEnglish(String str) { 
        return Regular(str,STR_ENG) ; 
    } 
    /**
     * Determines if the string is all English letters + digital
     * @param str
     * @return boolean
     */
    public static boolean isENG_NUM(String str) { 
        return Regular(str,STR_ENG_NUM) ; 
    } 
    /**
     * Determines if the string is all English letters + digital + The underline
     * @param str
     * @return boolean
     */
    public static boolean isENG_NUM_(String str) { 
        return Regular(str,STR_ENG_NUM_) ; 
    } 
    /**
     * Filter special strings Returns the filtered string
     * @param str
     * @return boolean
     */
    public static  String filterStr(String str) { 
        Pattern p = Pattern.compile(STR_SPECIAL); 
        Matcher m = p.matcher(str); 
        return   m.replaceAll("").trim(); 
    }
    /**
     * Calibration mechanism code format
     * @return
     */
    public static boolean isJigouCode(String str){
        return Regular(str,JIGOU_CODE) ; 
    }
    /**
     * Determines whether a string is composed of Numbers
     * @param str
     * @return boolean
     */
    public static boolean isSTR_NUM(String str) { 
        return Regular(str,STR_NUM) ; 
    }
    /**
     * Does the match match a regular expression pattern Match the return true
     * @param str Matched string
     * @param pattern Match the pattern
     * @return boolean
     */
    private static  boolean Regular(String str,String pattern){ 
        if(null == str || str.trim().length()<=0) 
            return false;          
        Pattern p = Pattern.compile(pattern); 
        Matcher m = p.matcher(str); 
        return m.matches(); 
    } 

That's all for this article, I hope you enjoy it.


Related articles: