zoukankan      html  css  js  c++  java
  • java后台表单验证工具类

    /**
     * 描述  java后台表单验证工具类
     *
     * @ClassName ValidationUtil
     * @Author wzf
     * @DATE 2018/10/27 15:21
     * @VerSion 1.0
     */
    public class ValidationUtil {
    
        //手机号
        public static String mobile = "^((13[0-9])|(14[0-9])|(15[0-9])|(16[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\d{8}$";
    
        //不允许为空
        public static String blank = ".*[^ ].*";
    
        //邮件
        public static String email = "^([a-z0-9A-Z]+[-|_|\.]?)+[a-z0-9A-Z]@([0-9a-z_\-]*)(\.(com|cn|inc|org|cc|edu|de)*){1,2}([a-z]{2})?$";
    
        //QQ,允许为空
        public static String tencentQQAllowNull = "((^$)|([1-9][0-9]{4,11}))";
    
        //QQ
        public static String tencentQQ = "[1-9][0-9]{4,11}";
    
        //网址,允许为空
        public static String urlAllowNull = "((^$)|(http|https)+://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?)";
    
        //网址
        public static String url = "(http|https)+://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
    
        //微信,允许为空
        public static String weixinAllowNull = "((^$)|(^[A-Za-z0-9]\w{3,60}+$))";
    
        //微信
        public static String weixin = "^[A-Za-z0-9]\w{3,60}+$";
    
        //正整数
        public static String PositiveInteger = "^[0-9]*[1-9][0-9]*$";
    
        //年份正则表达式
        public static String YearReg = "([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})";
    
        //正整数或非负数
        public static String NonnegativeNumber = "^(\+?[1-9][0-9]*$)|(([0-9]+\.[0-9]*[0-9][0-9]*))";
    
        //不允许有任何空白
        public static String NoAnyEmpty = "^[\S]{5,30}$";
    
        //日期
        public static String DateReg = "^$|^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";
    
        //字符串长度 1到200  ValidationUtil.validata("xxxxx",StringLength);
        public static String StringLength = "/^\S{1,100}$/";
        /*
         * @Description 身份证号码验证
         *
         * @Author wzf
         * @Date 2018/10/31 10:59
         * @Param [text]
         * @return boolean
         * 示例:
         *  Map valiTitleMap = ValidationUtil.isIdCardNo(xxxxx.getIdCardNo());//对身份证进行验证
         *       if(!(boolean)valiTitleMap.get("isOK")){
         *           return valiTitleMap;
         *       }
         **/
        public  static Map isIdCardNo(String cardId){
            Map error=new HashMap();
            if (cardId.length() == 15 || cardId.length() == 18) {
                if (!ValidationUtil.cardCodeVerifySimple(cardId)) {
                    error.put("msg", "15位或18位身份证号码不正确");
                    error.put("code","500");
                    error.put("isOK",false);
                    return error;
                } else {
                    if (cardId.length() == 18 && !ValidationUtil.cardCodeVerify(cardId)) {
                        error.put("msg", "18位身份证号码不符合国家规范");
                        error.put("code","500");
                        error.put("isOK",false);
                        return error;
                    }
                }
            } else {
                error.put("msg", "身份证号码长度必须等于15或18位");
                error.put("code","500");
                error.put("isOK",false);
                return error;
            }
            error.put("isOK",true);
            return error;
        }
    
        //是否是Double数字类型
        public static boolean isDouble(String value) {
            if (value == null) {
                return false;
            }
            Pattern pattern = Pattern.compile("[0-9]*(\.?)[0-9]*");
            return pattern.matcher(value).matches();
        }
    
        //是否是Long类型
        public static boolean isValidLong(String str) {
            try {
                Long.parseLong(str);
                return true;
            } catch (NumberFormatException e) {
            }
            return false;
        }
    
        //是否是Int类型
        public static boolean isValidInt(String str) {
            try {
                Integer.parseInt(str);
                return true;
            } catch (NumberFormatException e) {
            }
            return false;
        }
    
        public static boolean mobile(String str) {
            return validata(str, mobile);
        }
    
        public static boolean blank(String str) {
            return validata(str, blank);
        }
    
        /****
         * 不为空,限制长度范围
         * @param str
         * @param start
         * @param end
         * @return
         */
        public static boolean blankforlenth(String str, int start, int end) {
            String reg = "\S{" + start + "," + end + "}";
            return validata(str, reg);
        }
    
        /***
         * 非负数
         * @param str
         * @return
         */
        public static boolean nonnegativeNumber(String str) {
            return validata(str, NonnegativeNumber);
        }
    
        /****
         * 不允许有任何空白
         * @param str
         * @return
         */
        public static boolean noAnyEmpty(String str) {
            return validata(str, NoAnyEmpty);
        }
    
        /***
         * 日期判断
         * @param str
         * @return
         */
        public static boolean isDateReg(String str) {
            return validata(str, DateReg);
        }
    
        public static boolean eimail(String str) {
            return validata(str, email);
        }
    
        public static boolean tencentQQAllNull(String str) {
            return validata(str, tencentQQAllowNull);
        }
    
        public static boolean tencentQQ(String str) {
            return validata(str, tencentQQ);
        }
    
        public static boolean webURLAllowNull(String str) {
            return validata(str, urlAllowNull);
        }
    
        public static boolean webURL(String str) {
            return validata(str, url);
        }
    
        public static boolean weixinAllowNull(String str) {
            return validata(str, weixinAllowNull);
        }
    
        public static boolean weixin(String str) {
            return validata(str, weixin);
        }
    
        public static boolean positiveInteger(String str) {
            return validata(str, PositiveInteger);
        }
    
        public static boolean isyear(String str) {
            return validata(str, YearReg);
        }
    
        public static boolean validata(String str, String type) {
            Pattern p = Pattern.compile(type);//将给定的正则表达式编译到模式中。
    
            Matcher m = p.matcher(str);//创建匹配给定输入与此模式的匹配器。
            return m.matches();//尝试将整个区域与模式匹配。
        }
    
        /*
         * @Description 对String 字符串长度进行验证并返回提示信息
         *
         * @Author wzf
         * @Date 2018/10/27 16:14
         * @Param
         * @return ValidationUtil.valiStrLength("xxxx",10000,"字段长度不能超过10000请核对后提交");
         * 示例:
         *    Map valiTitleMap = ValidationUtil.valiStrLength(xxxxx.getName(),30, "名称输入不能超过30位请核对后访问提交");
         *       if(!(boolean)valiTitleMap.get("isOK")){
         *           return valiTitleMap;
         *       }
         **/
        public static Map valiStrLength(String str, Integer strLength, String msg) {
            Map map = new HashMap();
            if (null != str && !"".equals(str)) {
                if (str.length() > strLength) {
                    map.put("code", "500");
                    map.put("msg", msg);
                    map.put("isOK",false);
                    return map;
                }
                map.put("isOK",true);
                return map;
            }
            map.put("isOK",true);
            return map;
        }
        /*
         * @Description 正则校验身份证是否符合第一代第二代标准
         *
         * @Author wzf
         * @Date 2018/10/31 11:47
         * @Param [cardcode]
         * @return boolean
         **/
        public static boolean cardCodeVerifySimple(String cardcode) {
            //第一代身份证正则表达式(15位)
            String isIDCard1 = "^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$";
            //第二代身份证正则表达式(18位)
            String isIDCard2 ="^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$";
    
            //验证身份证
            if (cardcode.matches(isIDCard1) || cardcode.matches(isIDCard2)) {
                return true;
            }
            return false;
        }
        /*
         * @Description  验证第二代身份证是否符合国家规范
         *
         * @Author wzf
         * @Date 2018/10/31 11:47
         * @Param [cardcode]
         * @return boolean
         **/
        public static boolean cardCodeVerify(String cardcode) {
            int i = 0;
            String r = "error";
            String lastnumber = "";
    
            i += Integer.parseInt(cardcode.substring(0, 1)) * 7;
            i += Integer.parseInt(cardcode.substring(1, 2)) * 9;
            i += Integer.parseInt(cardcode.substring(2, 3)) * 10;
            i += Integer.parseInt(cardcode.substring(3, 4)) * 5;
            i += Integer.parseInt(cardcode.substring(4, 5)) * 8;
            i += Integer.parseInt(cardcode.substring(5, 6)) * 4;
            i += Integer.parseInt(cardcode.substring(6, 7)) * 2;
            i += Integer.parseInt(cardcode.substring(7, 8)) * 1;
            i += Integer.parseInt(cardcode.substring(8, 9)) * 6;
            i += Integer.parseInt(cardcode.substring(9, 10)) * 3;
            i += Integer.parseInt(cardcode.substring(10,11)) * 7;
            i += Integer.parseInt(cardcode.substring(11,12)) * 9;
            i += Integer.parseInt(cardcode.substring(12,13)) * 10;
            i += Integer.parseInt(cardcode.substring(13,14)) * 5;
            i += Integer.parseInt(cardcode.substring(14,15)) * 8;
            i += Integer.parseInt(cardcode.substring(15,16)) * 4;
            i += Integer.parseInt(cardcode.substring(16,17)) * 2;
            i = i % 11;
            lastnumber =cardcode.substring(17,18);
            if (i == 0) {
                r = "1";
            }
            if (i == 1) {
                r = "0";
            }
            if (i == 2) {
                r = "x";
            }
            if (i == 3) {
                r = "9";
            }
            if (i == 4) {
                r = "8";
            }
            if (i == 5) {
                r = "7";
            }
            if (i == 6) {
                r = "6";
            }
            if (i == 7) {
                r = "5";
            }
            if (i == 8) {
                r = "4";
            }
            if (i == 9) {
                r = "3";
            }
            if (i == 10) {
                r = "2";
            }
            if (r.equals(lastnumber.toLowerCase())) {
                return true;
            }
            return false;
        }
        public static void main(String[] args) {
            String xxx = "xxxxx";
            System.out.println(blankforlenth(xxx,5, 10));
        }
    }

     另外可参考:https://blog.csdn.net/wiker_yong/article/details/17040485

  • 相关阅读:
    超时时间已到。在操作完成之前超时时间已过或服务器未响应 shiney
    C#的映射机制 shiney
    C#用OLEDB导入问题总结 shiney
    SQL中的isnull shiney
    单虚拟机搭建zookeeper集群
    shell与sqlplus交互
    servlet
    迷你MVVM框架 avalonjs 入门教程
    classpath 'com.android.tools.build:gradle:6.7
    new ArrayList json.parse
  • 原文地址:https://www.cnblogs.com/awzf/p/9882664.html
Copyright © 2011-2022 走看看