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 ...
随机推荐
- java 基本语法(十六)Lambda (三)函数式接口
方法引用1.理解:方法引用可以看做是Lambda表达式深层次的表达.换句话说,方法引用就是Lambda表达式,也就是函数式接口的一个实例,通过方法的名字来指向一个方法. 2.使用情境:当要传递给Lam ...
- 深入浅出AQS源码解析
最近一直在研究AQS的源码,希望可以更深刻的理解AQS的实现原理.虽然网上有很多关于AQS的源码分析,但是看完以后感觉还是一知半解.于是,我将自己的整个理解过程记录下来了,希望对大家有所帮助. 基本原 ...
- 基于.NetCore3.1系列 ——认证授权方案之Swagger加锁
一.前言 在之前的使用Swagger做Api文档中,我们已经使用Swagger进行开发接口文档,以及更加方便的使用.这一转换,让更多的接口可以以通俗易懂的方式展现给开发人员.而在后续的内容中,为了对a ...
- 作为程序员居然没用过这款神器?太out了吧。
背景 工欲善其事,必先利其器.后面我将陆陆续续推荐一些软件利器帮助大家提高效率(主要针对 Mac 电脑). 如果你在使用 Mac 电脑,并且没有如某些人那样安装并使用 Windows 系统,那么你可 ...
- 深入浅出ReentrantLock源码解析
ReentrantLock不但是可重入锁,而且还是公平或非公平锁,在工作中会经常使用到,将自己对这两种锁的理解记录下来,希望对大家有帮助. 前提条件 在理解ReentrantLock时需要具备一些基本 ...
- 定时器之Timer
Timer中的TimerTask就是一个线程,可以一直执行下去的.可以使用Timer类的cancel方法来结束.-------------------------------------------- ...
- Ethical Hacking - NETWORK PENETRATION TESTING(2)
ALFA AWUS 1900 RTL8814AU https://www.alfa.com.tw/products_detail/2.htm Follow the guide on aircrac ...
- kubernetes系列(十) - 通过Ingress实现七层代理
1. Ingress入门 1.1 Ingress简介 1.2 原理和组成部分 1.3 资料信息 2. Ingress部署的几种方式 2.1 前言 2.1 Deployment+LoadBalancer ...
- Getting Started with Recovery Manager (RMAN) (文档 ID 360416.1)
In this Document Purpose Scope Details Overview of the RMAN EnvironmentDeciding Whether to Use a Fla ...
- IDEA 编译 Jmeter 5.0
IDEA 编译 Jmeter 5.0 1.下载源码后解压,我这边下载的是最新的『apache-jmeter-5.0_src.tar』,解压. 2.解压后 修改下列两个文件 eclipse.classp ...