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 ...
随机推荐
- Maven 专题(三):为什么要用Maven
1 真的需要吗? Maven 是干什么用的?这是很多同学在刚开始接触 Maven 时最大的问题.之所以会提出这个问题, 是因为即使不使用 Maven 我们仍然可以进行 B/S 结构项目的开发.从表述层 ...
- CMDB02/ 单例模式、资产采集参考命令、日志处理
CMDB02/单例模式.资产采集参考命令.日志处理 目录 CMDB02/单例模式.资产采集参考命令.日志处理 1. 单例模式 1.1 多例模式 1.2 单例模式 1.2.1 单例模式/错误 1.2.2 ...
- Idea 自定义快捷代码输入 如syso => System.out.println()
前言 之前一直用的Eclipse System.out.println()的快捷代码输入 是 syso,但是在Idea 不好使用了,后来搜索了一番才知道,在Idea中的快捷输入是 sout,这里我就想 ...
- bzoj4397[Usaco2015 dec]Breed Counting*
bzoj4397[Usaco2015 dec]Breed Counting 题意: 给定一个长度为N的序列,每个位置上的数只可能是1,2,3中的一种.有Q次询问,每次给定两个数a,b,请分别输出区间[ ...
- “我放弃了年薪20万的offer…”
最近身边朋友换工作.转型的越来越多.爬到一定高度,或者说到了一定年龄,每个选择都显得尤为重要.不仅因为高昂的机会成本,还有大家对后续规划的多重考虑.有一个说法你可能听过:混职场,要拥有不可替代的能力. ...
- T3 成绩单 题解
这个题本来不归我讲,但我A完之后觉得太坑了,还是讲一下吧. 首先这个题有个重要的地方:(字典顺序,学号全为小写字母,从小到大排列) 字典序和字典顺序是不一样的!!! 我以为是字典序……,wa了,字典顺 ...
- 浏览器如何执行JS
作为JS系列的第一篇,内容当然是浏览器如何执行一段JS啦. 首先通过浏览器篇我们可以得知,JS是在渲染进程里的JS引擎线程执行的.在此之后还要了解几个概念,编译器(Compiler).解释器(Inte ...
- SpringBoot 整合Mybatis + PageHelper 实现分页
前言: 现在公司大多数都实现了前后端分离,前端使用Vue.React.AngularJS 等框架,不用完全依赖后端.但是如果对于比较小型的项目,没必要前后端分离,而SpringBoot也基本抛弃了Js ...
- 微信PC端多开的秘密
微信电脑端也能多开 昨天,偶然从好朋友小林(微信公众号:小林Coding)处得知,他的电脑居然可以同时上两个微信号. 手机端多开微信我知道,像华为.小米等手机系统都对此做了支持,不过在运行Window ...
- git上传本地项目到gitlab
<1>输入git config --global user.name "你的用户名" <2>输入git config --global user.email ...