/**
* 描述 java后台表单验证工具类
*
* @ClassName ValidationUtil
* @Author wzf
* @DATE 2018/10/27 15:21
* @VerSion 1.0
*/
public class ValidationUtil { //手机号
public static String mobile = "^((13[0-9])|(14[0-9])|(15[0-9])|(16[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\\d{8}$"; //不允许为空
public static String blank = ".*[^ ].*"; //邮件
public static String email = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([0-9a-z_\\-]*)(\\.(com|cn|inc|org|cc|edu|de)*){1,2}([a-z]{2})?$"; //QQ,允许为空
public static String tencentQQAllowNull = "((^$)|([1-9][0-9]{4,11}))"; //QQ
public static String tencentQQ = "[1-9][0-9]{4,11}"; //网址,允许为空
public static String urlAllowNull = "((^$)|(http|https)+://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?)"; //网址
public static String url = "(http|https)+://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?"; //微信,允许为空
public static String weixinAllowNull = "((^$)|(^[A-Za-z0-9]\\w{3,60}+$))"; //微信
public static String weixin = "^[A-Za-z0-9]\\w{3,60}+$"; //正整数
public static String PositiveInteger = "^[0-9]*[1-9][0-9]*$"; //年份正则表达式
public static String YearReg = "([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})"; //正整数或非负数
public static String NonnegativeNumber = "^(\\+?[1-9][0-9]*$)|(([0-9]+\\.[0-9]*[0-9][0-9]*))"; //不允许有任何空白
public static String NoAnyEmpty = "^[\\S]{5,30}$"; //日期
public static String DateReg = "^$|^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"; //字符串长度 1到200 ValidationUtil.validata("xxxxx",StringLength);
public static String StringLength = "/^\\S{1,100}$/";
/*
* @Description 身份证号码验证
*
* @Author wzf
* @Date 2018/10/31 10:59
* @Param [text]
* @return boolean
* 示例:
* Map valiTitleMap = ValidationUtil.isIdCardNo(xxxxx.getIdCardNo());//对身份证进行验证
* if(!(boolean)valiTitleMap.get("isOK")){
* return valiTitleMap;
* }
**/
public static Map isIdCardNo(String cardId){
Map error=new HashMap();
if (cardId.length() == 15 || cardId.length() == 18) {
if (!ValidationUtil.cardCodeVerifySimple(cardId)) {
error.put("msg", "15位或18位身份证号码不正确");
error.put("code","500");
error.put("isOK",false);
return error;
} else {
if (cardId.length() == 18 && !ValidationUtil.cardCodeVerify(cardId)) {
error.put("msg", "18位身份证号码不符合国家规范");
error.put("code","500");
error.put("isOK",false);
return error;
}
}
} else {
error.put("msg", "身份证号码长度必须等于15或18位");
error.put("code","500");
error.put("isOK",false);
return error;
}
error.put("isOK",true);
return error;
} //是否是Double数字类型
public static boolean isDouble(String value) {
if (value == null) {
return false;
}
Pattern pattern = Pattern.compile("[0-9]*(\\.?)[0-9]*");
return pattern.matcher(value).matches();
} //是否是Long类型
public static boolean isValidLong(String str) {
try {
Long.parseLong(str);
return true;
} catch (NumberFormatException e) {
}
return false;
} //是否是Int类型
public static boolean isValidInt(String str) {
try {
Integer.parseInt(str);
return true;
} catch (NumberFormatException e) {
}
return false;
} public static boolean mobile(String str) {
return validata(str, mobile);
} public static boolean blank(String str) {
return validata(str, blank);
} /****
* 不为空,限制长度范围
* @param str
* @param start
* @param end
* @return
*/
public static boolean blankforlenth(String str, int start, int end) {
String reg = "\\S{" + start + "," + end + "}";
return validata(str, reg);
} /***
* 非负数
* @param str
* @return
*/
public static boolean nonnegativeNumber(String str) {
return validata(str, NonnegativeNumber);
} /****
* 不允许有任何空白
* @param str
* @return
*/
public static boolean noAnyEmpty(String str) {
return validata(str, NoAnyEmpty);
} /***
* 日期判断
* @param str
* @return
*/
public static boolean isDateReg(String str) {
return validata(str, DateReg);
} public static boolean eimail(String str) {
return validata(str, email);
} public static boolean tencentQQAllNull(String str) {
return validata(str, tencentQQAllowNull);
} public static boolean tencentQQ(String str) {
return validata(str, tencentQQ);
} public static boolean webURLAllowNull(String str) {
return validata(str, urlAllowNull);
} public static boolean webURL(String str) {
return validata(str, url);
} public static boolean weixinAllowNull(String str) {
return validata(str, weixinAllowNull);
} public static boolean weixin(String str) {
return validata(str, weixin);
} public static boolean positiveInteger(String str) {
return validata(str, PositiveInteger);
} public static boolean isyear(String str) {
return validata(str, YearReg);
} public static boolean validata(String str, String type) {
Pattern p = Pattern.compile(type);//将给定的正则表达式编译到模式中。 Matcher m = p.matcher(str);//创建匹配给定输入与此模式的匹配器。
return m.matches();//尝试将整个区域与模式匹配。
} /*
* @Description 对String 字符串长度进行验证并返回提示信息
*
* @Author wzf
* @Date 2018/10/27 16:14
* @Param
* @return ValidationUtil.valiStrLength("xxxx",10000,"字段长度不能超过10000请核对后提交");
* 示例:
* Map valiTitleMap = ValidationUtil.valiStrLength(xxxxx.getName(),30, "名称输入不能超过30位请核对后访问提交");
* if(!(boolean)valiTitleMap.get("isOK")){
* return valiTitleMap;
* }
**/
public static Map valiStrLength(String str, Integer strLength, String msg) {
Map map = new HashMap();
if (null != str && !"".equals(str)) {
if (str.length() > strLength) {
map.put("code", "500");
map.put("msg", msg);
map.put("isOK",false);
return map;
}
map.put("isOK",true);
return map;
}
map.put("isOK",true);
return map;
}
/*
* @Description 正则校验身份证是否符合第一代第二代标准
*
* @Author wzf
* @Date 2018/10/31 11:47
* @Param [cardcode]
* @return boolean
**/
public static boolean cardCodeVerifySimple(String cardcode) {
//第一代身份证正则表达式(15位)
String isIDCard1 = "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$";
//第二代身份证正则表达式(18位)
String isIDCard2 ="^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[A-Z])$"; //验证身份证
if (cardcode.matches(isIDCard1) || cardcode.matches(isIDCard2)) {
return true;
}
return false;
}
/*
* @Description 验证第二代身份证是否符合国家规范
*
* @Author wzf
* @Date 2018/10/31 11:47
* @Param [cardcode]
* @return boolean
**/
public static boolean cardCodeVerify(String cardcode) {
int i = 0;
String r = "error";
String lastnumber = ""; i += Integer.parseInt(cardcode.substring(0, 1)) * 7;
i += Integer.parseInt(cardcode.substring(1, 2)) * 9;
i += Integer.parseInt(cardcode.substring(2, 3)) * 10;
i += Integer.parseInt(cardcode.substring(3, 4)) * 5;
i += Integer.parseInt(cardcode.substring(4, 5)) * 8;
i += Integer.parseInt(cardcode.substring(5, 6)) * 4;
i += Integer.parseInt(cardcode.substring(6, 7)) * 2;
i += Integer.parseInt(cardcode.substring(7, 8)) * 1;
i += Integer.parseInt(cardcode.substring(8, 9)) * 6;
i += Integer.parseInt(cardcode.substring(9, 10)) * 3;
i += Integer.parseInt(cardcode.substring(10,11)) * 7;
i += Integer.parseInt(cardcode.substring(11,12)) * 9;
i += Integer.parseInt(cardcode.substring(12,13)) * 10;
i += Integer.parseInt(cardcode.substring(13,14)) * 5;
i += Integer.parseInt(cardcode.substring(14,15)) * 8;
i += Integer.parseInt(cardcode.substring(15,16)) * 4;
i += Integer.parseInt(cardcode.substring(16,17)) * 2;
i = i % 11;
lastnumber =cardcode.substring(17,18);
if (i == 0) {
r = "1";
}
if (i == 1) {
r = "0";
}
if (i == 2) {
r = "x";
}
if (i == 3) {
r = "9";
}
if (i == 4) {
r = "8";
}
if (i == 5) {
r = "7";
}
if (i == 6) {
r = "6";
}
if (i == 7) {
r = "5";
}
if (i == 8) {
r = "4";
}
if (i == 9) {
r = "3";
}
if (i == 10) {
r = "2";
}
if (r.equals(lastnumber.toLowerCase())) {
return true;
}
return false;
}
public static void main(String[] args) {
String xxx = "xxxxx";
System.out.println(blankforlenth(xxx,5, 10));
}
}

另外可参考:https://blog.csdn.net/wiker_yong/article/details/17040485

java后台表单验证工具类的更多相关文章

  1. java工具类(二)之java正则表达式表单验证

    java正则表达式表单验证类工具类(验证邮箱.手机号码.qq号码等) 这篇文章主要介绍了java使用正则表达式进行表单验证工具类,可以验证邮箱.手机号码.qq号码等方法,需要的朋友可以参考下. jav ...

  2. python运维开发(十九)----Django后台表单验证、session、cookie、model操作

    内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ...

  3. 好用的表单验证工具 vuelidate

    Vue validation(表单验证)--vuelidate 表单是用户那里收集的数据的工具.如果它没有收集到你需要的数据,或者收集到的数据不对,那么你的表单就没有达到它的目的.这就是为什么我们需要 ...

  4. flask 后台表单验证模块

    我不想直接用flask的wtf模块,太大,功能太多,用不了.但后台也不能不做验证吧,我比较懒,不想一行一行写代码验证,所以就写了一个验证模块,对于小项目也够用了 # encoding=utf-8 # ...

  5. ios表单验证帮助类

    // // ValidateHelper.h // #import <Foundation/Foundation.h> @interface ValidateHelper : NSObje ...

  6. 史上最全Java表单验证封装类

    package com.tongrong.utils; import java.util.Collection; import java.util.Map; import java.util.rege ...

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

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

  8. 自定义表单验证--jquery validator addMethod的使用

    原文地址:jquery validator addMethod 方法的使用作者:蜡笔小玄 jQuery.validate是一款非常不错的表单验证工具,简单易上手,而且能达到很好的体验效果,虽然说在项目 ...

  9. Laravel教程 七:表单验证 Validation

    Laravel教程 七:表单验证 Validation 此文章为原创文章,未经同意,禁止转载. Laravel Form 终于要更新这个Laravel系列教程的第七篇了,期间去写了一点其他的东西. 就 ...

随机推荐

  1. opencv根据摄像头名称获取索引值

    OpenCV的VideoCapture是一个视频读取与解码的API接口,支持各种视频格式.网络视频流.摄像头读取. 针对一般摄像头的读取,opencv为了实现跨平台读取摄像头时是使用的摄像头索引, V ...

  2. Docker 部署Jira8.1.0

    Jira与Confluence一样,都需要用到独立的数据库,对于数据库的安装我们不做介绍,主要介绍如何用Docker部署Jira以及对Jira进行破解的操作. 1.数据库准备 关于数据库官方文档说明: ...

  3. 写CSDN博客

    文章目录 前言 写博客的规范 写博客的小技巧 版权声明模板 博客表格模板 更改博客字体和颜色 LaTeX 数学公式 前言 这是一篇关于写CSDN博客的文章.记录我的博客规范,技巧,模板,心得. 写博客 ...

  4. ThreadLocal内存泄漏真因探究(转)

    出处: 链接:https://www.jianshu.com/p/a1cd61fa22da ThreadLocal原理回顾 ThreadLocal的原理:每个Thread内部维护着一个ThreadLo ...

  5. 02 servlet基础 生命周期 tomcat web.xml

    新建web项目 – new Web Project – 选择:javaee 5.0 建包 – com.gzsxt.wang 新建class:FirstServlet – 继承:HttpServlet( ...

  6. Board Game CodeForces - 605D (BFS)

    大意: 给定$n$张卡$(a_i,b_i,c_i,d_i)$, 初始坐标$(0,0)$. 假设当前在$(x,y)$, 若$x\ge a_i,y\ge b_i$, 则可以使用第$i$张卡, 使用后达到坐 ...

  7. (一)easyUI之树形网络

    树形网格(TreeGrid)可以展示有限空间上带有多列和复杂数据电子表 一.案例一:按tree的数据结构来生成 前台 <%@ page language="java" con ...

  8. mac OS下 安装MySQL 5.7

    Mac OS X 下 TAR.GZ 方式安装 MySQL 5.7 与 MySQL 5.6 相比, 5.7 版本在安装时有两处不同: 1:初始化方式改变, 从scripts/mysql_install_ ...

  9. 关闭google默认打开翻译提醒

    关闭google默认打开翻译提醒 在header中添加以下代码: <meta name="google" content="notranslate" /& ...

  10. Bootstrap+Hbuilder

    出处:http://blog.csdn.net/antony9118/article/details/52189525 1 BootStrap的优点 BootStrap是现在最受欢迎的前端框架,对cs ...