最近公司的项目,关于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();
    }

}

java 代码实现各数据的正则校验相关推荐

  1. java代码转置sql数据_SQL Server中的数据科学:数据分析和转换–使用SQL透视和转置

    java代码转置sql数据 In data science, understanding and preparing data is critical, such as the use of the ...

  2. 用java把excel数据导入oracle日期转换,Java代码兑现excel数据导入到Oracle

    Java代码实现excel数据导入到Oracle 1.首先需要两个jar包jxl.jar,ojdbc.jar(注意版本,版本不合适会报版本错误) 2.代码: import java.io.File; ...

  3. java代码对数据库数据的CRUD操作

    java代码对数据库数据的CRUD操作 前言 一.CRUD.JDBC是什么? 二.操作步骤 1.连接mqsql数据库.加载数据库驱动 2.对数据库中的表进行增.删.改.查 总结 前言 对于刚刚学习完J ...

  4. Java代码读取MySQL数据,遇到‘0000-00-00’报错Value ‘0000-00-00‘ can not be represented as java.sql.Date

    报错 再使用Java代码读取MySQL数据的时候,读取date格式的数据,然后使用DateTimeFormatter格式化的时候突然在控制台发现了报错,Value '0000-00-00' can n ...

  5. 统一社会信用代码的编码格式以及js正则校验

    统一社会信用代码 统一社会信用代码正则:/^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/ // 返回值为true或false functio ...

  6. java插入多条数据_如何使用java代码一次性往数据插入10W条数据

    1. 场景 : 往数据库插入10W条记录 2. 思考方案 : 单纯的我们这里不涉及其他任何操作,我们只是想生成一个10W条记录而已,中间无其他步骤,得到的效果如下图所示, 而我们又不会mysql脚本啊 ...

  7. Java代码调用聚合数据---查询全国车辆违章接口返回违章结果

    1.注册聚合数据账号,完成认证,申请数据接口 打开https://www.juhe.cn/,点击最右侧的注册 输入自己的信息注册就行了 注册完成后,认证一下,公司认证或者个人认证都可以,但是调用全国车 ...

  8. java代码验证大数据算法在竞猜足球预测分析中准确率

    最近闲来无事,出于对足球的热爱,又痴迷于大数据技术,用java建了百来种算法模型,写了一个小软件,用来分析预测竞猜足球的胜平负.或许很多朋友都有疑问,竞猜足球到底怎么分析才能预测准确?竞猜足球盘口有什 ...

  9. 腾讯地图影像瓦片数据爬取--java代码(地图数据篇.9)

    听老人家说:多看美女会长寿 地图之家总目录(建议先查看该内容) 文章末尾处提供保证可运行完整代码包,运行如有问题,可"私信"博主. 效果如下所示: 爬取后的瓦片数据可通过nginx ...

最新文章

  1. Dropout也能自动化了,谷歌大神Quoc Le等人利用强化学习自动找寻模型专用Dropout...
  2. JS写的不咋地的碰撞检测
  3. 生成sql 脚本没有索引
  4. nginx mac 服务器 html,Mac上搭建 nginx 服务器
  5. 软件开发人员的“七重苦”(2)
  6. 直播回顾:如何对付臭名昭著的 IO 夯?诊断利器来了 | 龙蜥技术
  7. 跟面试官侃了半小时 MySQL 事务,把原子性、一致性、持久性的实现都讲完了
  8. 单片机c语言编程要点,第1章单片机的C语言编程_2015要点.ppt
  9. 机器学习与计算机视觉(keras和mnist)
  10. vue-cli3.0项目的安装、创建和启动
  11. 电脑文本文档怎么写html视频,如何保存网页内容?如文字、图片和视频
  12. server2008服务器进不了桌面,解决windows server 2008 r2 登录进入桌面只显示一片蓝色背景...
  13. Windows10的虚拟桌面
  14. python的并行计算框架
  15. 软考真题———2018上
  16. java技术路线思维导图_最简单的思维导图+流程图制作神器processon
  17. 植物大战僵尸无尽版游泳池优秀阵容推荐(一)
  18. HTTP 各种状态码代表的含义
  19. oop 编程是什么?
  20. 计算机各键的名称和作用,space是哪个键键盘各键位名称及功用详解

热门文章

  1. Grbl代码分析 cpu-map.h
  2. 营销人员是怎么使用MindManager思维导图的?
  3. wps VBA 更改模块的名字,VBA模块重命名,坑
  4. 大数据开发工程师需要具备哪些技能?
  5. JavaSwimg jacob调用模板,斑马打印机打印条码
  6. 大数除法(超长整数运算除法器)详解
  7. 转行做产品经理,应该如何入手
  8. 人工智能会取代人类吗?
  9. c++的内存管理(raii->shart_ptr->垃圾回收)
  10. 简单的扫雷游戏(9*9)(10个雷)