1.正则校验

  1. import java.util.regex.Matcher;
    import java.util.regex.Pattern;
  2.  
  3. 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+)+";
    /**
    * 电话号码正则表达式= String regex = "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$";
    */
    public static final String PHONE = "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$";
    /**
    * 手机号码正则表达式=^(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])\\d{8}$";
  4.  
  5. /**
    * 校验手机号格式不校验正确性^1[0-9]{10}$
    */
    public static final String MobileByFormat= "^1[0-9]{10}$";
    /**
    * 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]+$";
    /**
    * 过滤特殊字符串正则
    * 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)";
  6.  
  7. /**
    * 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*)*)$";
  8.  
  9. /**
    * 身份证正则表达式
    */
    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}))";
  10.  
  11. /**
    * 机构代码
    */
    public static final String JIGOU_CODE = "^[A-Z0-9]{8}-[A-Z0-9]$";
  12.  
  13. /**
    * 匹配数字组成的字符串 ^[0-9]+$
    */
    public static final String STR_NUM = "^[0-9]+$";
  14.  
  15. //匹配中英文
    public static final String ZH_ENG = "^[a-zA-Z\\u4e00-\\u9fa5]+$";
  16.  
  17. // //------------------验证方法
    /**
    * 判断字段是否为空 符合返回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);
    }
    /**
    * 判断是否为手机号码格式不校验正确性 符合返回ture
    * @param str
    * @return boolean
    */
    public static boolean isMobileByFormat(String str) {
    return Regular(str,MobileByFormat);
    }
    /**
    * 判断是否为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 ;
    }
  18.  
  19. }
    /**
    * 判断字段是否为邮编 符合返回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();
    }
  20.  
  21. /**
    * 校验机构代码格式
    * @return
    */
    public static boolean isJigouCode(String str){
    return Regular(str,JIGOU_CODE) ;
    }
  22.  
  23. /**
    * 判断字符串是不是数字组成
    * @param str
    * @return boolean
    */
    public static boolean isSTR_NUM(String str) {
    return Regular(str,STR_NUM) ;
    }
  24.  
  25. /**
    * 匹配是否符合正则表达式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();
    }
  26.  
  27. public static boolean isZhongEng(String str){
    return Regular(str, ZH_ENG);
    }
  28.  
  29. public static void main(String[] args) {
    boolean mobileByFormat = isMobileByFormat("19011188161");
    }
    }
    =============================================================================================================================
  30.  
  31. //Controller代码如下: 校验为true说明通过校验. 取反报错
  1. if(!Validation.isInteger(page+"")){
    return AjaxResultUtil.fail("page必须是数字");
    }
    if(!Validation.isInteger(rows+"")){
    return AjaxResultUtil.fail("rows必须是数字");
    }
  1.  

校验总结:校验是否是中英文等等(1.正则校验 2.hibernate volidator)的更多相关文章

  1. Struts 2 数据校验要用到的类和两种校验方式以及一些校验问题的解决

    通过继承ActionSupport类来完成Action开发,ActionSupport类不仅对Action接口进行简单实现, 同时增加了验证.本地化等支持 .真实开发中自定义Action都需要继承该类 ...

  2. RegExp正则校验之Java及R测试

    前言: 正则表达式(英语:Regular Expression)原属于计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里边,正则表达式通常被用 ...

  3. struts2:数据校验,通过Action中的validate()方法实现校验,图解

    根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种.服务器端验证目前有两种方式: 第一种 Struts2中提供了一个com.opensymphony.xwork2.Valid ...

  4. struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)

    前文:struts2:数据校验,通过Action中的validate()方法实现校验,图解 如果定义的Action中存在多个逻辑处理方法,且不同的处理逻辑可能需要不同的校验规则,在这种情况下,就需要通 ...

  5. java_method_正则校验

    /** * * @Title: validadeRegExp * @Descrption : TODO (正则校验) * @param regExp * @param obj * @return * ...

  6. 正则校验:微信号,qq号,邮箱

    java判断微信号.手机.名字的正则表达 - willgos - 博客园https://www.cnblogs.com/solossl/p/5813106.html 微信号正则校验,qq正则,邮箱正则 ...

  7. 最全,可直接用的一些正则校验,判断邮箱,手机号码,车牌号,身份证号,网址,账号,密码,ip,去掉html格式,工商税号等。

    一些正则校验,判断邮箱,手机号码,车牌号,身份证号,网址,账号,密码,ip,去掉html格式,工商税号等. // 判断邮箱 isValid = [text isValidEmail]; // 判断手机 ...

  8. hibernate validator自定义校验注解以及基于服务(服务组)的校验

    hibernate validator是Bean Validation 1.1 (JSR 349) Reference Implementation,其广泛的应用在mvc的参数校验中,尤其是使用服务端 ...

  9. jQuery正则校验

    jQuery正则校验 银行卡号 //验证银行卡号,bankno为银行卡号function luhnCheck(){ var bankno = $.trim($("#bankNoInp&quo ...

随机推荐

  1. Matlab-4:追赶法(crout分解)工具箱

    function x=chase (a,b,c,f) % the method of chaase******************************* % a, b, c,分别是是方程组的下 ...

  2. 克隆linux系统网卡问题

    如果没有 ifcfg-eth0  手动创建 删掉uuid uwaddr 保存退出 然后清空 >/etc/udev/rules.d/70-persistent-net.rules 然后重启 reb ...

  3. ActiveMQ Advisory Message

    http://activemq.apache.org/advisory-message.html ActiveMQ broker 内部维持了一些 topic,保存了一些系统信息,客户端可以订阅这些 t ...

  4. laravel获取的数据转换为数组

    当构建 JSON API 时,您可能常常需要把模型和关联对象转换成数组或JSON.所以Eloquent里已经包含了这些方法.要把模型和已载入的关联对象转成数组,可以使用 toArray方法: $use ...

  5. laravel 连表查询数据库

    $this->model ->select($field) ->leftJoin('b', 'b.cid', '=', 'a.id') ->orderBy("a.ad ...

  6. js 图片延时加载

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  7. Unity中Button按钮的触发监听事件

    第一种方式:需要把自己添加的Button按钮属性(Inspector)中的(Button)onclick添加方法. public void BtnCreteClick() { Debug.Log(&q ...

  8. OOP⑸

    1.封装: 继承: extends java只支持单根继承!(一个类只能有一个直接的父类) 是代码重用的一种方式! 将子类共有的属性和方法提取到父类中去! Object:超类/基类==>java ...

  9. Unix分类学习

    调试 shell # bash -x script.sh 设置终端背景色 setterm -background black 一.网络 1.网卡状态 mii-tool -v ethtool eth0 ...

  10. javascript进阶笔记(2)

    js是一门函数式语言,因为js的强大威力依赖于是否将其作为函数式语言进行使用.在js中,我们通常要大量使用函数式编程风格.函数式编程专注于:少而精.通常无副作用.将函数作为程序代码的基础构件块. 在函 ...