java 代码实现各数据的正则校验

最近公司的项目,关于excel导入导出,对数据要进行校验,所以就对数据的正则校验就用的比较多,自己也是一点点去查,现在项目完成了,就把所有用到的都做一个小结,或许以后还可以用到!

package org.asyware.insurance.util;

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

/**
 * 
 * @author zl
 * 
 *
 */
public class DataCheckUtil {

 /**
     * @see 验证手机号是否合法
     * @param mobiles
     * @return  合法:true  不合法:false
     */
    public static boolean isMobileNO(String mobile){  
        if (mobile.length() != 11)
        {
            return false;
        }else{
            /**
             * 移动号段正则表达式
             * 
             */
            String pat1 = "^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$";
            /**
             * 联通号段正则表达式
             */
            String pat2  = "^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$";
            /**
             * 电信号段正则表达式
             */
            String pat3  = "^((133)|(153)|(177)|(18[0,1,9])|(149)|(199))\\d{8}$";
            /**
             * 虚拟运营商正则表达式
             */
            String pat4 = "^((170))\\d{8}|(1718)|(1719)\\d{7}$";

            Pattern pattern1 = Pattern.compile(pat1);
            Matcher match1 = pattern1.matcher(mobile);
            boolean isMatch1 = match1.matches();
            if(isMatch1){
                return true;
            }
            Pattern pattern2 = Pattern.compile(pat2);
            Matcher match2 = pattern2.matcher(mobile);
            boolean isMatch2 = match2.matches();
            if(isMatch2){
                return true;
            }
            Pattern pattern3 = Pattern.compile(pat3);
            Matcher match3 = pattern3.matcher(mobile);
            boolean isMatch3 = match3.matches();
            if(isMatch3){
                return true;
            }
            Pattern pattern4 = Pattern.compile(pat4);
            Matcher match4 = pattern4.matcher(mobile);
            boolean isMatch4 = match4.matches();
            if(isMatch4){
                return true;
            }
            return false; 
        }
    } 

    
    
    /**
     * 判断导入的数据是全中文
     * @param str
     * @return
     */
    public static boolean  isChinese(String str) {
        String regEx = "[\u4e00-\u9fa5]";
        Pattern pat = Pattern.compile(regEx);
        Matcher matcher = pat.matcher(str);
        if (matcher.find()) {
            return true;
        }else {
            return false;
        }  
    }
    


    /**
     * 卡号校验是否是纯数字
     * @param args
     * @return
     */
    public static boolean isNum(String str){
//        String str1="[0-9]{1,}";        
//        Pattern pat = Pattern.compile(str1);
//        Matcher matcher = pat.matcher((CharSequence)str);
//        if(matcher.matches()) {
//            return true;
//        }else {
//            return false;
//        }
        String regex = "^[0-9]*$";
        return match(regex, str);
    }
    
    
    /**
     * 对开户行名称如:102中国工商银行进行校验(只含有数字和汉字校验)
     * @param str
     * @return
     */
    public static boolean isChineseAndIsNum(String str) {
         String regEx = "^[0-9\u4e00-\u9fa5]+$";
        Pattern pat = Pattern.compile(regEx);
        Matcher matcher = pat.matcher(str);
        if(matcher.find()) {
            return true;
        }else {
            return false;
        }
    }
    
    /**
     * 2018-08-08
     * 对日期格式进行判断
     * @param date
     * @return
     */
    public boolean isDate(String date)
    {
      /**
       * 判断日期格式和范围
       */
      String rexp = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
      Pattern pat = Pattern.compile(rexp);
      Matcher mat = pat.matcher(date);
      boolean dateType = mat.matches();
      return dateType;
    }
    
    /**
     * 对银行账号信息校验
     * @param bankName
     * @return
     */
    public static boolean idBankId(String bankAccount,String bankName ) {
        int a=6;
        if(bankAccount.length()<a) {
            return false;
        }
        String str=bankAccount.substring(0, 6);
        String str1="402农村信用社";
        String str2="623017";
        String str3="623213";
        int str4=16;
        if((str1).equals(bankName)) {                
            if((str2).equals(str)||(str3).equals(str)) {
                if(bankAccount.length()!=str4) {
                    return false;
                }else {
                    return true;
                }                
            }else {
                return false;       
            }
        }
        String jsyh="105中国建设银行";
        String str5="631700";
        String str6="622280";
        String str7="436742";
        String js1="621467";
        String js2="621700";
        String js3="621081";
        String js4="622700";
        String js5="623668";
        String js6="442228";
        int str8=19;
        String js7="622707";
        String js8="434062";
        if((jsyh).equals(bankName)) {
            if((str5).equals(str)||(str6).equals(str)||(str7).equals(str)||(js1).equals(str)
        ||(js2).equals(str)||(js3).equals(str)||(js4).equals(str)||(js5).equals(str)||(js6).equals(str)) {
                if(bankAccount.length()!=str8) {
                    return false;
                }else {
                    return true;
                }
            }else if((js7).equals(str)||(js8).equals(str)){
                if(bankAccount.length()!=str4) {
                    return false;
                }else {
                    return true;
                }
            }else {
                return false;
            }
        }
        String nyyh="103中国农业银行";
        String s="622848";
        String s1="622841";
        String s8="623052";
        String s9="622845";
        String s10="622846";
        String s11="622827";
        String s12="621671";
        String s13="955998";
        String s14="281010";
        int s15=17;
        if((nyyh).equals(bankName)) {
            if((s).equals(str)||(s1).equals(str)||(s8).equals(str)||(s9).equals(str)
                    ||(s10).equals(str)||(s11).equals(str)||(s12).equals(str)||(s13).equals(str)) {
                if(bankAccount.length()!=str8) {
                    return false;
                }else {
                    return true;
                }
            }else if((s14).equals(str) && bankAccount.length()==s15){
                return true;
            }else {
                return false;
            }
        }
        String yzyh="403中国邮政储蓄银行";
        String s2="621799";
        String s3="608561";
        String s4="622150";
        if((yzyh).equals(bankName)) {
            if((s2).equals(str)||(s3).equals(str)||(s4).equals(str)) {
                if(bankAccount.length()!=str8) {
                    return false;
                }else {
                    return true;
                }
            }else {
                return false;
            }
        }
        
        String zgyh="104中国银行";
        String zh1="621785";
        String zh2="621226";
        String zh3="621725";
        String zh4="623569";
        String zh5="621786";
        String zh6="621661";
        String zh7="621660";
        if((zgyh).equals(bankName)) {
            if((zh1).equals(str)||(zh2).equals(str)||(zh3).equals(str)||(zh4).equals(str)
                    ||(zh5).equals(str)||(zh6).equals(str)||(zh7).equals(str)) {
                if(bankAccount.length()!=str8) {
                    return false;
                }else {
                    return true;
                }
            }else {
                return false;
            }
        }
        
        String gsyh="102中国工商银行";
        String gs1="621723";
        String gs2="621226";
        String gs3="622203";
        String gs4="622208";
        String gs5="280600";
        String gs6="622597";
        String gs7="621722";
        if((gsyh).equals(bankName)) {
            if((gs1).equals(str)||(gs2).equals(str)||(gs3).equals(str)||(gs4).equals(str)
                    ||(gs5).equals(str)||(gs7).equals(str)) {
                if(bankAccount.length()!=str8) {
                    return false;
                }else {
                    return true;
                }
            }else if((gs6).equals(str) && bankAccount.length()==str4) {
                return true;
            }else {
                return false;
            }
        }
        
        String jtyh="301交通银行";
        String jt="622262";
        if((jtyh).equals(bankName)) {
            if((jt).equals(str) && bankAccount.length()==str8) {
                return true;
            }else {
                return false;
            }
        }
        //其他银行不作校验判断
        return true;            
    }
    
    /**
    * @param regex
    * 正则表达式字符串
    * @param str
    * 要匹配的字符串
    * @return 如果str 符合 regex的正则表达式格式,返回true, 否则返回 false;
    */
    private static boolean match(String regex, String str) {
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        return matcher.matches();
    }

}
 

猜你喜欢

转载自blog.csdn.net/zhangleiyes123/article/details/82746919
今日推荐