/**
* <判断对象是否为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验证工具类(待验证)的更多相关文章

  1. 验证工具类 - ValidateUtils.java

    验证工具类,提供验证email格式.是否ipv4.是否ipv6.是否中文.是否数字.正则表达式验证的方法. 源码如下:(点击下载 - ValidateUtils.java .commons-lang- ...

  2. 正则表达式验证工具类RegexUtils.java

    Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合. 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 6. URL 7. 是否为数字 8. 是否为中文 9. ...

  3. Java常用工具类---XML工具类、数据验证工具类

    package com.jarvis.base.util; import java.io.File;import java.io.FileWriter;import java.io.IOExcepti ...

  4. java后台表单验证工具类

    /** * 描述 java后台表单验证工具类 * * @ClassName ValidationUtil * @Author wzf * @DATE 2018/10/27 15:21 * @VerSi ...

  5. 基于AQS实现的Java并发工具类

    本文主要介绍一下基于AQS实现的Java并发工具类的作用,然后简单谈一下该工具类的实现原理.其实都是AQS的相关知识,只不过在AQS上包装了一下而已.本文也是基于您在有AQS的相关知识基础上,进行讲解 ...

  6. Java开发工具类集合

    Java开发工具类集合 01.MD5加密工具类 import java.security.MessageDigest; import java.security.NoSuchAlgorithmExce ...

  7. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  8. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  9. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

随机推荐

  1. (一)pandas的两种对象

    将鱼图像数据进行操作,使用numpy知识 import numpy as np import matplotlib.pyplot as plt %matplotlib inline #咱们可以不用sh ...

  2. Scala 面向对象(六):面向对象的特征二:继承 (一)

    1 Scala继承的基本语法 class 子类名 extends 父类名 { 类体 } class Person { var name : String = _ var age : Int = _ d ...

  3. python 迭代器(二):迭代器基础(二)可迭代的对象与迭代器的对比

    可迭代的对象 如果对象实现了能返回迭代器的 __iter__ 方法,那么对象就是可迭代的. 序列都可以迭代:实现了 __getitem__ 方法,而且其参数是从零开始的索引,这种对象也可以迭代. &g ...

  4. 数据可视化之DAX篇(一)Power BI时间智能函数如何处理2月29日的?

    https://zhuanlan.zhihu.com/p/109964336 ​今年是闰年,有星友问我,在Power BI中,2月29日的上年同期是怎么计算的? 这是个好问题,正好梳理一下,Power ...

  5. 微信小程序接口封装、原生接口封装、request、promise封装

    相信大家在做微信小程序的时候会有很多地方需要调用接口,就和pc以及手机端一样,多个页面多次调用会有很多状态,那为了节省大家的开发时间就会需要给请求的接口做一些简单封装,便于开发,在这里我用了两个js, ...

  6. 浅谈工业4.0背景下的空中数据端口,无人机3D 可视化系统的应用

    前言 近年来,无人机的发展越发迅速,既可民用于航拍,又可军用于侦察,涉及行业广泛,把无人机想象成一个“会飞的传感器”,无人机就成了工业4.0的一个空中数据端口,大至地球物理.气象.农业数据.小至个人位 ...

  7. webpack源码-loader的原理

    版本 webpack :"version": "3.12.0", webpack配置中的loaders配置是如何传递的 webpack/lib/NormalMo ...

  8. SpringBoot整合Swagger3生成接口文档

    前后端分离的项目,接口文档的存在十分重要.与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率实在太低.与swagger2相比新版的swagg ...

  9. iOS打包测试ipa

    1. 连接iphone真机 2.选中真机, archive

  10. 最大连续区间(HDU-1540)

    HDU1540 线段树最大连续区间. 给定长度为n的数组,m次操作. 操作D,删除给定节点. 操作R,恢复最后一个删除的节点. 操作Q,询问给定节点的最大连续区间 维护三个值,区间的最大左连续区间,最 ...