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);
}
java验证工具类(待验证)的更多相关文章
- 验证工具类 - ValidateUtils.java
验证工具类,提供验证email格式.是否ipv4.是否ipv6.是否中文.是否数字.正则表达式验证的方法. 源码如下:(点击下载 - ValidateUtils.java .commons-lang- ...
- 正则表达式验证工具类RegexUtils.java
Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合. 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 6. URL 7. 是否为数字 8. 是否为中文 9. ...
- Java常用工具类---XML工具类、数据验证工具类
package com.jarvis.base.util; import java.io.File;import java.io.FileWriter;import java.io.IOExcepti ...
- java后台表单验证工具类
/** * 描述 java后台表单验证工具类 * * @ClassName ValidationUtil * @Author wzf * @DATE 2018/10/27 15:21 * @VerSi ...
- 基于AQS实现的Java并发工具类
本文主要介绍一下基于AQS实现的Java并发工具类的作用,然后简单谈一下该工具类的实现原理.其实都是AQS的相关知识,只不过在AQS上包装了一下而已.本文也是基于您在有AQS的相关知识基础上,进行讲解 ...
- Java开发工具类集合
Java开发工具类集合 01.MD5加密工具类 import java.security.MessageDigest; import java.security.NoSuchAlgorithmExce ...
- Java Properties工具类详解
1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...
- Java json工具类,jackson工具类,ObjectMapper工具类
Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...
- Java日期工具类,Java时间工具类,Java时间格式化
Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...
随机推荐
- Mysql 实例:mysql语句练习50题(普通sql写法)
为了练习sql语句,在网上找了一些题,自己做了一遍,收益颇多.很多地方换一种思路,有更好的写法,欢迎指正. 题目地址:https://blog.csdn.net/fashion2014/article ...
- springboot --- 之SSM框架整合
1.pom依赖: 即:spring-boot的基本jar ---- 内置springmvc和spring Thymeleaf jar 热部署 jar ---方便二次加载 ctrl+f9再次编译 Myb ...
- 小白从零开始阿里云部署react项目+node服务接口(一:阿里云服务器)
准备阿里云服务器,并安装系统 如果没用自己服务器可以购买一个 https://www.aliyun.com/minisite/goods?userCode=x7i5glgc 初级购买一个1核2G的主机 ...
- 【requests库】七个主要方法
本文主要介绍requests库访问http的七个主要方法:get.head.post.put.patch.delete. requests.get()方法 get方法用于获取指定url的HTML网页, ...
- 题解 洛谷 P5814 【[CTSC2001]终极情报网】
读完题后不难看出本题是个网络流模型,源点流出的总流量为\(k\),源点向每个和总部直接联系的间谍连边,每个间谍向其能传递的间谍连容量为\(m\)的边,能与德军情报部进行联系的间谍向汇点连容量为\(in ...
- Oracle创建自动增长列
前言: Oracle中不像SQL Server在创建表的时候使用identity(1001,1)来创建自动增长列,而是需要结合序列(Sequences)和触发器(Triggers)来实现 创建测试表 ...
- 字符编码笔记:ASCII,Unicode 和 UTF-8个人理解
一.ASCII 码 我们知道,计算机内部,所有信息最终都是一个二进制值.每一个二进制位(bit)有0和1两种状态,因此八个二进制位(字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,作 ...
- 【原创】xenomai内核解析--同步互斥机制(一)--优先级倒置
版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 一.xenomai 资源管理简要 二.优先级倒 ...
- Flutter日常笔记
factory修饰的构造方法 表示不是每次返回的都是新创建出来的对象, 可以取内存中已有的, 比如单例模式的书写 每次返回的都是一个实例, 这时要使用factory修饰构造方法 flutter不要求显 ...
- ORACLE_19c用户密码登录失败的问题以及ORA-28040
测试环境19c 本地登录无异常,创建测试用户,电脑Plsql登录提示报错ORA-28040,处理后再次登录提示密码错误,最后重置密码再次登录OK? 通过这个问题再次测试及反思: 1.ORA-28040 ...