大家好,我是烤鸭:

分享一个Java版本的正则校验工具类。

Validation.java

package com.xxx.xxx.common.utils;import java.util.regex.Matcher;
import java.util.regex.Pattern;  /*** 验证工具类* @author admin**/
public class Validation {  //------------------常量定义  /** * Email正则表达式="^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";*///public static final String EMAIL = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";;  public static final String EMAIL = "\\w+(\\.\\w+)*@\\w+(\\.\\w+)+";/** * 电话号码正则表达式= (^(\d{2,4}[-_-—]?)?\d{3,8}([-_-—]?\d{3,8})?([-_-—]?\d{1,7})?$)|(^0?1[35]\d{9}$)  */public static final String PHONE = "(^(\\d{2,4}[-_-—]?)?\\d{3,8}([-_-—]?\\d{3,8})?([-_-—]?\\d{1,7})?$)|(^0?1[35]\\d{9}$)" ;  /** * 手机号码正则表达式=^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$*/public static final String MOBILE ="^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9]|19[0-9])\\d{8}$";/** * Integer正则表达式 ^-?(([1-9]\d*$)|0) */public static final String  INTEGER = "^-?(([1-9]\\d*$)|0)";  /** * 正整数正则表达式 >=0 ^[1-9]\d*|0$ */public static final String  INTEGER_NEGATIVE = "^[1-9]\\d*|0$";  /** * 负整数正则表达式 <=0 ^-[1-9]\d*|0$ */public static final String  INTEGER_POSITIVE = "^-[1-9]\\d*|0$";      /** * Double正则表达式 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ */public static final String  DOUBLE ="^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$";  /** * 正Double正则表达式 >=0  ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$  */public static final String  DOUBLE_NEGATIVE ="^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0$";  /** * 负Double正则表达式 <= 0  ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ */public static final String  DOUBLE_POSITIVE ="^(-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*))|0?\\.0+|0$";   /** * 年龄正则表达式 ^(?:[1-9][0-9]?|1[01][0-9]|120)$ 匹配0-120岁 */public static final String  AGE="^(?:[1-9][0-9]?|1[01][0-9]|120)$";  /** * 邮编正则表达式  [0-9]\d{5}(?!\d) 国内6位邮编 */public static final String  CODE="[0-9]\\d{5}(?!\\d)";    /** * 匹配由数字、26个英文字母或者下划线组成的字符串 ^\w+$ */public static final String STR_ENG_NUM_="^\\w+$";  /** * 匹配由数字和26个英文字母组成的字符串 ^[A-Za-z0-9]+$  */public static final String STR_ENG_NUM="^[A-Za-z0-9]+";  /** * 匹配由26个英文字母组成的字符串  ^[A-Za-z]+$ */public static final String STR_ENG="^[A-Za-z]+$";  /*** 最多10个汉字:*/public static final String STR_CHN_TEN="^[\\u4e00-\\u9fa5]{0,10}";/*** 过滤特殊字符串正则 * regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";  */public static final String STR_SPECIAL="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";  /*** * 日期正则 支持: *  YYYY-MM-DD  *  YYYY/MM/DD  *  YYYY_MM_DD  *  YYYYMMDD *  YYYY.MM.DD的形式 */public static final String DATE_ALL="((^((1[8-9]\\d{2})|([2-9]\\d{3}))([-\\/\\._]?)(10|12|0?[13578])([-\\/\\._]?)(3[01]|[12][0-9]|0?[1-9])$)" +  "|(^((1[8-9]\\d{2})|([2-9]\\d{3}))([-\\/\\._]?)(11|0?[469])([-\\/\\._]?)(30|[12][0-9]|0?[1-9])$)" +  "|(^((1[8-9]\\d{2})|([2-9]\\d{3}))([-\\/\\._]?)(0?2)([-\\/\\._]?)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\\/\\._]?)(0?2)([-\\/\\._]?)(29)$)|(^([3579][26]00)" +  "([-\\/\\._]?)(0?2)([-\\/\\._]?)(29)$)" +  "|(^([1][89][0][48])([-\\/\\._]?)(0?2)([-\\/\\._]?)(29)$)|(^([2-9][0-9][0][48])([-\\/\\._]?)" +  "(0?2)([-\\/\\._]?)(29)$)" +  "|(^([1][89][2468][048])([-\\/\\._]?)(0?2)([-\\/\\._]?)(29)$)|(^([2-9][0-9][2468][048])([-\\/\\._]?)(0?2)" +  "([-\\/\\._]?)(29)$)|(^([1][89][13579][26])([-\\/\\._]?)(0?2)([-\\/\\._]?)(29)$)|" +  "(^([2-9][0-9][13579][26])([-\\/\\._]?)(0?2)([-\\/\\._]?)(29)$))";  /*** * 日期正则 支持: *  YYYY-MM-DD  */public static final String DATE_FORMAT1="(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)";/** * URL正则表达式 * 匹配 http www ftp */public static final String URL = "^(http|www|ftp|)?(://)?(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*((:\\d+)?)(/(\\w+(-\\w+)*))*(\\.?(\\w)*)(\\?)?" +  "(((\\w*%)*(\\w*\\?)*(\\w*:)*(\\w*\\+)*(\\w*\\.)*(\\w*&)*(\\w*-)*(\\w*=)*(\\w*%)*(\\w*\\?)*" +  "(\\w*:)*(\\w*\\+)*(\\w*\\.)*" +  "(\\w*&)*(\\w*-)*(\\w*=)*)*(\\w*)*)$";   /** * 身份证正则表达式 */public static final String IDCARD="((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})" +  "(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}" +  "[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))";/*** 机构代码*/public static final String JIGOU_CODE = "^[A-Z0-9]{8}-[A-Z0-9]$";/*** 匹配数字组成的字符串  ^[0-9]+$ */public static final String STR_NUM = "^[0-9]+$";  ------------------验证方法       /** * 判断字段是否为空 符合返回ture * @param str * @return boolean */public static synchronized boolean StrisNull(String str) {  return null == str || str.trim().length() <= 0 ? true : false ;  }  /** * 判断字段是非空 符合返回ture * @param str * @return boolean */public static  boolean StrNotNull(String str) {  return !StrisNull(str) ;  }  /** * 字符串null转空 * @param str * @return boolean */public static  String nulltoStr(String str) {return StrisNull(str)?"":str;  }     /** * 字符串null赋值默认值  * @param str    目标字符串 * @param defaut 默认值 * @return String */public static  String nulltoStr(String str,String defaut) {  return StrisNull(str)?defaut:str;  }  /** * 判断字段是否为Email 符合返回ture * @param str * @return boolean */public static  boolean isEmail(String str) {  return Regular(str,EMAIL);  }  /** * 判断是否为电话号码 符合返回ture * @param str * @return boolean */public static  boolean isPhone(String str) {  return Regular(str,PHONE);  }  /** * 判断是否为手机号码 符合返回ture * @param str * @return boolean */public static  boolean isMobile(String str) {  return Regular(str,MOBILE);  }  /** * 判断是否为Url 符合返回ture * @param str * @return boolean */public static  boolean isUrl(String str) {  return Regular(str,URL);  }     /**  * 判断字段是否为数字 正负整数 正负浮点数 符合返回ture * @param str * @return boolean */public static  boolean isNumber(String str) {  return Regular(str,DOUBLE);  }  /** * 判断字段是否为INTEGER  符合返回ture * @param str * @return boolean */public static  boolean isInteger(String str) {  return Regular(str,INTEGER);  }  /** * 判断字段是否为正整数正则表达式 >=0 符合返回ture * @param str * @return boolean */public static  boolean isINTEGER_NEGATIVE(String str) {  return Regular(str,INTEGER_NEGATIVE);  }  /** * 判断字段是否为负整数正则表达式 <=0 符合返回ture * @param str * @return boolean */public static  boolean isINTEGER_POSITIVE(String str) {  return Regular(str,INTEGER_POSITIVE);  }     /** * 判断字段是否为DOUBLE 符合返回ture * @param str * @return boolean */public static  boolean isDouble(String str) {  return Regular(str,DOUBLE);  }  /**  * 判断字段是否为正浮点数正则表达式 >=0 符合返回ture * @param str * @return boolean */public static  boolean isDOUBLE_NEGATIVE(String str) {  return Regular(str,DOUBLE_NEGATIVE);  }  /** * 判断字段是否为负浮点数正则表达式 <=0 符合返回ture * @param str * @return boolean */public static  boolean isDOUBLE_POSITIVE(String str) {  return Regular(str,DOUBLE_POSITIVE);  }     /** * 判断字段是否为日期 符合返回ture * @param str * @return boolean */public static  boolean isDate(String str) {  return Regular(str,DATE_ALL);  }  /*** 验证2010-12-10* @param str* @return*/public static  boolean isDate1(String str) {  return Regular(str,DATE_FORMAT1);  }  /** * 判断字段是否为年龄 符合返回ture * @param str * @return boolean */public static  boolean isAge(String str) {  return Regular(str,AGE) ;  }  /** * 判断字段是否超长 * 字串为空返回fasle, 超过长度{leng}返回ture 反之返回false * @param str * @param leng * @return boolean */public static  boolean isLengOut(String str,int leng) {       return StrisNull(str)?false:str.trim().length() > leng ;  }  /** * 判断字段是否为身份证 符合返回ture * @param str * @return boolean */public static  boolean isIdCard(String str) {  if(StrisNull(str)) return false ;  if(str.trim().length() == 15 || str.trim().length() == 18) {  return Regular(str,IDCARD);  }else {  return false ;  }  }  /** * 判断字段是否为邮编 符合返回ture * @param str * @return boolean */public static  boolean isCode(String str) {  return Regular(str,CODE) ;  }  /** * 判断字符串是不是全部是英文字母 * @param str * @return boolean */public static boolean isEnglish(String str) {  return Regular(str,STR_ENG) ;  }  /** * 判断字符串是不是全部是英文字母+数字 * @param str * @return boolean */public static boolean isENG_NUM(String str) {  return Regular(str,STR_ENG_NUM) ;  }  /** * 判断字符串是不是全部是英文字母+数字+下划线 * @param str * @return boolean */public static boolean isENG_NUM_(String str) {  return Regular(str,STR_ENG_NUM_) ;  }  /** * 过滤特殊字符串 返回过滤后的字符串 * @param str * @return boolean */public static  String filterStr(String str) {  Pattern p = Pattern.compile(STR_SPECIAL);  Matcher m = p.matcher(str);  return   m.replaceAll("").trim();  }/*** 校验机构代码格式* @return*/public static boolean isJigouCode(String str){return Regular(str,JIGOU_CODE) ;  }/** * 判断字符串是不是数字组成 * @param str * @return boolean */public static boolean isSTR_NUM(String str) {  return Regular(str,STR_NUM) ;  } /*** 判断字符串是不是2-10个中文组成* @param str* @return boolean*/public static boolean isSTR_CHN_TEN(String str) {return Regular(str,STR_CHN_TEN) ;}/** * 匹配是否符合正则表达式pattern 匹配返回true * @param str 匹配的字符串 * @param pattern 匹配模式 * @return boolean */private static  boolean Regular(String str,String pattern){  if(null == str || str.trim().length()<=0)  return false;           Pattern p = Pattern.compile(pattern);  Matcher m = p.matcher(str);  return m.matches();  }  }  

Java 正则表达式 工具类 中文 英文 email 手机号 身份证 数字 日期相关推荐

  1. Java 正则表达式工具类大全

    import java.util.regex.Matcher; import java.util.regex.Pattern; /**  * @author: nql  * @Description: ...

  2. Java正则表达式工具类

    import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory ...

  3. re管理器java格式_正则表达式工具类——ReUtil

    前言 在文本处理中,正则表达式几乎是全能的,但是Java的正则表达式有时候处理一些事情还是有些繁琐,所以我封装了部分常用功能.就比如说我要匹配一段文本中的某些部分,我们需要这样做: Pattern p ...

  4. java 正则 工具类_正则表达式工具类,正则表达式封装,Java正则表达式

    正则表达式工具类 正则表达式封装 Java正则表达式 >>>>>>>>>>>>>>>>>>& ...

  5. Python正则表达式工具类文件的封装实例,提供了多个实例,并且在代码中包含中文注释

    Python正则表达式工具类文件的封装实例,提供了多个实例,并且在代码中包含中文注释 import reclass RegexUtils:'''正则表达式工具类'''def __init__(self ...

  6. Hutool Java常用工具类汇总

    简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...

  7. java常用工具类和Hutool常用的工具类整理

    java常用工具类和Hutool常用的工具类整理 1.java常用工具类 1.1 Scanner类 /*** Scanner 类*/@Testpublic void testScanner() {Sc ...

  8. JAVA常用工具类(实用高效)

    JAVA常用工具类(根据GITHUB代码统计) 从Google你能搜索到大量的关于Struts,Spring,Hibernate,iBatis等比较大的框架的资料,但是很少有人去关注一些小的工具包,但 ...

  9. Java常用工具类StringUtils的常用方法

    Java常用工具类StringUtils的常用方法 1.该工具类是用于操作Java.lang.String类的. 2.StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字 ...

最新文章

  1. 如何打造企业的组织能力?战略决定组织,而组织决定成败!
  2. Cocos2dx源码记录(1) CCGLProgram
  3. 如何将idea自带的maven添加到环境变量
  4. C++(STL):13--- list插入和访问元素
  5. java变位词_GoLang 字符串变位词
  6. some daily
  7. Zookeeper学习笔记之 Zab协议(Zookeeper Atomic Broadcast)
  8. 大数据之-Hadoop3.x_MapReduce_ReduceTask源码解析---大数据之hadoop3.x工作笔记0127
  9. Android播放外部音乐文件
  10. aop日志 android,ASM实现Android APK的AOP日志统计
  11. qtxlsx读写 excel
  12. leetcode 739 解法思路
  13. 典型无线复习资料---有这不怕挂科
  14. Beaglebone Black– 智能家居控制系统 LAS - 网页服务器 Node.js 、Web Service、页面 和 TCP 请求转 UDP 发送...
  15. 推荐系统的PMF - 概率矩阵分解和协同过滤
  16. java学习第一步-工欲善其事必先利其器
  17. 一个细节看同为腾讯公司的微信和手Q两个团队的工作态度
  18. 小闫陪你入门 Java (三)
  19. APP上架各大应用市场教程:所需材料与注意事项
  20. matlab对数极坐标,Log-Polar Mapping(对数极坐标映射)

热门文章

  1. [html] 当html中使用map标签时,area中coords值如何精确定位呢?
  2. [html] 你认为一个好的布局应该是什么样的?有哪些需要注意的地方?
  3. [vue] 你知道nextTick的原理吗?
  4. [css] 举例说明常用的cursor取值有哪些?
  5. [css] 什么是逐帧动画?
  6. 前端学习(2037)vue之电商管理系统电商系统之优化
  7. 前端学习(1849)vue之电商管理系统电商系统前端项目初始化
  8. 前端学习(1706):前端系列javascript之应用场景
  9. 前端学习(1370):错误处理中间件
  10. 第四十一期:一道经典的MySQL面试题,答案出现三次反转