zoukankan      html  css  js  c++  java
  • java验证工具类(待验证)

      /**
         * <判断对象是否为null或者空>
         * 
         * @param obj
         *            需要判断的对象
         * @return 如果对象为null或者空则返回true
         */
        public static boolean isNullOrEmpty(Object obj) {
            if (obj == null
                    || "".equals(StringUtil.toString(obj).trim())) {
                return true;
            }
            return false;
        }
    
        /**
         * 判断是否是数字
         * 
         * @param obj
         *            需要判断的元素
         * @return 是否是数字
         */
        public static boolean isNumber(Object obj) {
    
            return checkPattern(StringUtil.toString(obj).trim(),
                    "^[-+]?[0-9]+(\.[0-9]+)?$");
        }
    
        /**
         * 判断是否是正数
         * 
         * @param obj
         *            需要判断的元素
         * @return 是否是正数
         */
        public static boolean isPositiveNumber(Object obj) {
    
            return checkPattern(StringUtil.toString(obj).trim(),
                    "^[0-9]+(\.[0-9]+)?$");
        }
    
        /**
         * 判断是否是Double类型
         * 
         * @param obj
         *            需要判断的元素
         * @return 是否是Double类型(小数点后2位小数)
         */
        public static boolean isDouble(Object obj) {
            return checkPattern(StringUtil.toString(obj).trim(),
                    "^[0-9]+(.[0-9]{1,2})?$");
        }
    
        /**
         * 判断是否是int类型
         * 
         * @param obj
         *            需要判断的元素
         * @return
         */
        public static boolean isInt(Object obj) {
            return checkPattern(StringUtil.toString(obj).trim(), "^[0-9]?$");
        }
    
        /**
         * 判断集合不为空并且不为null
         * 
         * @param con
         *            集合
         * @return 是否为空或者null
         */
        public static boolean checkCollectionIsNullOrEmpty(
                @SuppressWarnings("rawtypes") Collection con) {
            return con == null || con.size() == 0;
        }
    
        /**
         * 判断字符串是否满足正则
         * 
         * @param str
         *            需要判断的字符串
         * @param pattern
         *            正则
         * @return 判断结果
         */
        public static boolean checkPattern(String str, String pattern) {
            try {
                if (pattern.startsWith("/")) {
                    pattern = pattern.substring(1);
                }
                if (pattern.endsWith("/")) {
                    pattern = pattern.substring(0, pattern.length() - 1);
                }
                return str.matches(pattern);
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
        }
    
        /**
         * 判断字符串是否满足手机正则
         * 
         * @param str
         *            手机号
         * @return 判断结果
         */
        public static boolean checkPhone(String str) {
            // 手机正则
            String phone = "(13\d|14[57]|15[^4,\D]|17[678]|18\d)\d{8}|170[059]\d{7}";
            return str.matches(phone);
        }
    
        /**
         * <判断字符串是否是汉字>
         * 
         * @param str
         *            汉字
         * @return 判断结果
         */
        public static boolean checkCharacters(String str) {
            // 汉字正则
            String chineseCharacters = "[u4e00-u9fa5]+";
            return str.matches(chineseCharacters);
        }
    
        /**
         * <判断邮箱格式是否满足条件>
         * 
         * @param emailStr
         *            需要校验的邮箱字符串
         */
        public static boolean checkEmail(String emailStr) {
            // 邮箱正则
            String emailRegStr = "^([a-z0-9A-Z]+[-|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$";
            return emailStr.matches(emailRegStr);
        }
    
        /**
         * 
         * <判断是否满足指定格式的日期>
         * 
         * @param dateStr
         *            需要校验的日期字符串
         * @return
         */
        public static boolean checkDate(String dateStr) {
            if (null == dateStr || "".equals(dateStr)) {
                return false;
            }
            boolean flag = false;
            Pattern pattern0 = null;
            Matcher match0 = null;
            String datePattern = "("
                    +
                    // 第一种情况为月份是大月的有31天。
                    "(^\d{3}[1-9]|\d{2}[1-9]\d{1}|\d{1}[1-9]\d{2}|[1-9]\d{3}"
                    + //
                    "([-/\._]?)"
                    + // 时间间隔符(-,/,.,_)
                    "(10|12|0?[13578])"
                    + // 大月
                    "([-/\._]?)"
                    + // 时间间隔符(-,/,.,_)
                    "((3[01]|[12][0-9]|0?[1-9])?)"
                    + // 日(31)要验证年月因此出现0/1次
                    "([\s]?)"
                    + // 空格
                    "((([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9]))?))$"
                    + // 时分秒
                    "|"
                    + //// 第二种情况为月份是小月的有30天,不包含2月。
                    "(^\d{3}[1-9]|\d{2}[1-9]\d{1}|\d{1}[1-9]\d{2}|[1-9]\d{3}"
                    + //
                    "([-/\._]?)"
                    + // 时间间隔符(-,/,.,_)
                    "(11|0?[469])"
                    + // 小月不含2月
                    "([-/\._]?)"
                    + // 时间间隔符(-,/,.,_)
                    "(30|[12][0-9]|0?[1-9])"
                    + // 日(30)
                    "([\s]?)"
                    + // 空格
                    "((([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9]))?))$"
                    + // 时分秒
                    "|"
                    + //// 第三种情况为平年月份是2月28天的。
                    "(^\d{3}[1-9]|\d{2}[1-9]\d{1}|\d{1}[1-9]\d{2}|[1-9]\d{3}"
                    + //
                    "([-/\._]?)"
                    + // 时间间隔符(-,/,.,_)
                    "(0?2)"
                    + // 平年2月
                    "([-/\._]?)"
                    + // 时间间隔符(-,/,.,_)
                    "(2[0-8]|1[0-9]|0?[1-9])"
                    + // 日(28)
                    "([\s]?)"
                    + // 空格
                    "((([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9]))?))$"
                    + // 时分秒
                    "|"
                    + //// 第四种情况为闰年月份是2月29天的。
                        // 可以被4整除但不能被100整除的年份。
                        // 可以被400整除的数亦是能被100整除,因此后两位是00,所以只要保证前两位能被4整除即可。
                    "(^((\d{2})(0[48]|[2468][048]|[13579][26]))|((0[48]|[2468][048]|[13579][26])00)"
                    + "([-/\._]?)" + "(0?2)" + "([-/\._]?)" + "(29)" + "([\s]?)"
                    + "((([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d))?))$" + // 时分秒
                    ")";
            ;
    
            pattern0 = Pattern.compile(datePattern);
            match0 = pattern0.matcher(dateStr);
            flag = match0.matches();
            return flag;
        }
    
        /**
         * 
         * <判断是否满足指定格式的身份证号码>
         * 
         * @param idCardStr
         *            需要校验的身份证号码的字符串
         * @return
         */
        public static boolean checkIdCard(String idCardStr) {
            // 身份证号码正则
            String idCardReg = "(^\d{18}$)|(^\d{15}$)";
            return idCardStr.matches(idCardReg);
        }
  • 相关阅读:
    微人事项目-mybatis-持久层
    通过外键连接多个表
    springioc
    Redis 消息中间件 ServiceStack.Redis 轻量级
    深度数据对接 链接服务器 数据传输
    sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取
    sqlserver 索引优化 CPU占用过高 执行分析 服务器检查
    sql server 远程备份 bak 删除
    冒泡排序
    多线程 异步 beginInvoke EndInvoke 使用
  • 原文地址:https://www.cnblogs.com/ifindu-san/p/9625859.html
Copyright © 2011-2022 走看看