文档章节

Java表单验证工具类

目翟
 目翟
发布于 2013/12/30 11:05
字数 2436
阅读 107
收藏 4
点赞 0
评论 0
package com.wiker.utils;
import java.util.regex.*;
/**
 *
 * @version 1.0
 * @author wiker
 * @since JDK 1.6
 **/
public class ValidateUtils {
	/** 整数  */
	private static final String  V_INTEGER="^-?[1-9]\\d*$";

    /**  正整数 */
    private static final String V_Z_INDEX="^[1-9]\\d*$";

    /**负整数 */
    private static final String V_NEGATIVE_INTEGER="^-[1-9]\\d*$";

    /** 数字 */
    private static final String V_NUMBER="^([+-]?)\\d*\\.?\\d+$";

    /**正数 */
  	private static final String V_POSITIVE_NUMBER="^[1-9]\\d*|0$";

    /** 负数 */
  	private static final String V_NEGATINE_NUMBER="^-[1-9]\\d*|0$";

    /** 浮点数 */
  	private static final String V_FLOAT="^([+-]?)\\d*\\.\\d+$";

    /** 正浮点数 */
  	private static final String V_POSTTIVE_FLOAT="^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$";

    /** 负浮点数 */
  	private static final String V_NEGATIVE_FLOAT="^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$";

    /** 非负浮点数(正浮点数 + 0) */
  	private static final String V_UNPOSITIVE_FLOAT="^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$";

    /** 非正浮点数(负浮点数 + 0) */
  	private static final String V_UN_NEGATIVE_FLOAT="^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$";

    /** 邮件 */
  	private static final String V_EMAIL="^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$";

    /** 颜色 */
  	private static final String V_COLOR="^[a-fA-F0-9]{6}$";

    /** url */
  	private static final String V_URL="^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$";

    /** 仅中文 */
  	private static final String V_CHINESE="^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$";

    /** 仅ACSII字符 */
  	private static final String V_ASCII="^[\\x00-\\xFF]+$";

    /** 邮编 */
  	private static final String V_ZIPCODE="^\\d{6}$";

    /** 手机 */
  	private static final String V_MOBILE="^(1)[0-9]{10}$";

    /** ip地址 */
  	private static final String V_IP4="^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$";

    /** 非空 */
  	private static final String V_NOTEMPTY="^\\S+$";

    /** 图片  */
  	private static final String V_PICTURE="(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$";

    /**  压缩文件  */
  	private static final String V_RAR="(.*)\\.(rar|zip|7zip|tgz)$";

    /** 日期 */
  	private static final String V_DATE="^((((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-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$";

    /** QQ号码  */
  	private static final String V_QQ_NUMBER="^[1-9]*[1-9][0-9]*$";

    /** 电话号码的函数(包括验证国内区号,国际区号,分机号) */
  	private static final String V_TEL="^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$";

    /** 用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串 */
  	private static final String V_USERNAME="^\\w+$";

    /** 字母 */
  	private static final String V_LETTER="^[A-Za-z]+$";

    /** 大写字母  */
  	private static final String V_LETTER_U="^[A-Z]+$";

    /** 小写字母 */
  	private static final String V_LETTER_I="^[a-z]+$";

	/** 身份证  */
  	private static final String V_IDCARD ="^(\\d{15}$|^\\d{18}$|^\\d{17}(\\d|X|x))$";

  	/**验证密码(数字和英文同时存在)*/
  	private static final String V_PASSWORD_REG="[A-Za-z]+[0-9]";

  	/**验证密码长度(6-18位)*/
  	private static final String V_PASSWORD_LENGTH="^\\d{6,18}$";

  	/**验证两位数*/
  	private static final String V_TWO_POINT="^[0-9]+(.[0-9]{2})?$";

  	/**验证一个月的31天*/
  	private static final String V_31DAYS="^((0?[1-9])|((1|2)[0-9])|30|31)$";

  	
  	private ValidateUtils(){}
  	
  	
  	/**
  	 * 验证是不是整数
  	 * @param value 要验证的字符串 要验证的字符串
  	 * @return  如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
  	 */
  	public static boolean Integer(String value){
  		return match(V_INTEGER,value);
  	}

  	/**
  	 * 验证是不是正整数
  	 * @param value 要验证的字符串
  	 * @return  如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
  	 */
  	public static boolean Z_index(String value){
  		return match(V_Z_INDEX,value);
  	}

  	/**
  	 * 验证是不是负整数
  	 * @param value 要验证的字符串
  	 * @return  如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
  	 */
	public static boolean Negative_integer(String value){
  		return match(V_NEGATIVE_INTEGER,value);
  	}

	/**
	 * 验证是不是数字
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Number(String value){
		return match(V_NUMBER,value);
	}

	/**
	 * 验证是不是正数
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean PositiveNumber(String value){
		return match(V_POSITIVE_NUMBER,value);
	}

	/**
	 * 验证是不是负数
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean NegatineNumber(String value){
		return match(V_NEGATINE_NUMBER,value);
	}

	/**
	 * 验证一个月的31天
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Is31Days(String value){
		return match(V_31DAYS,value);
	}

	/**
	 * 验证是不是ASCII
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean ASCII(String value){
		return match(V_ASCII,value);
	}


	/**
	 * 验证是不是中文
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Chinese(String value){
		return match(V_CHINESE,value);
	}



	/**
	 * 验证是不是颜色
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Color(String value){
		return match(V_COLOR,value);
	}



	/**
	 * 验证是不是日期
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Date(String value){
		return match(V_DATE,value);
	}

	/**
	 * 验证是不是邮箱地址
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Email(String value){
		return match(V_EMAIL,value);
	}

	/**
	 * 验证是不是浮点数
	 * @param value 要验证的字符串
	 * @return  如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Float(String value){
		return match(V_FLOAT,value);
	}

	/**
	 * 验证是不是正确的身份证号码
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean IDcard(String value){
		return match(V_IDCARD,value);
	}

	/**
	 * 验证是不是正确的IP地址
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean IP4(String value){
		return match(V_IP4,value);
	}

	/**
	 * 验证是不是字母
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Letter(String value){
		return match(V_LETTER,value);
	}

	/**
	 * 验证是不是小写字母
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Letter_i(String value){
		return match(V_LETTER_I,value);
	}


	/**
	 * 验证是不是大写字母
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Letter_u(String value){
		return match(V_LETTER_U,value);
	}


	/**
	 * 验证是不是手机号码
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Mobile(String value){
		return match(V_MOBILE,value);
	}

	/**
	 * 验证是不是负浮点数
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Negative_float(String value){
		return match(V_NEGATIVE_FLOAT,value);
	}

	/**
	 * 验证非空
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Notempty(String value){
		return match(V_NOTEMPTY,value);
	}

	/**
	 * 验证密码的长度(6~18位)
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Number_length(String value){
		return match(V_PASSWORD_LENGTH,value);
	}

	/**
	 * 验证密码(数字和英文同时存在)
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Password_reg(String value){
		return match(V_PASSWORD_REG,value);
	}

	/**
	 * 验证图片
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Picture(String value){
		return match(V_PICTURE,value);
	}

	/**
	 * 验证正浮点数
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Posttive_float(String value){
		return match(V_POSTTIVE_FLOAT,value);
	}

	/**
	 * 验证QQ号码
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean QQnumber(String value){
		return match(V_QQ_NUMBER,value);
	}

	/**
	 * 验证压缩文件
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Rar(String value){
		return match(V_RAR,value);
	}

	/**
	 * 验证电话
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Tel(String value){
		return match(V_TEL,value);
	}

	/**
	 * 验证两位小数
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Two_point(String value){
		return match(V_TWO_POINT,value);
	}

	/**
	 * 验证非正浮点数
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Un_negative_float(String value){
		return match(V_UN_NEGATIVE_FLOAT,value);
	}

	/**
	 * 验证非负浮点数
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Unpositive_float(String value){
		return match(V_UNPOSITIVE_FLOAT,value);
	}

	/**
	 * 验证URL
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Url(String value){
		return match(V_URL,value);
	}

	/**
	 * 验证用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean UserName(String value){
		return match(V_USERNAME,value);
	}

	/**
	 * 验证邮编
	 * @param value 要验证的字符串
	 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b>
	 */
	public static boolean Zipcode(String value){
		return match(V_ZIPCODE,value);
	}

  	 /**
     * @param regex 正则表达式字符串
     * @param str 要匹配的字符串
     * @return 如果str 符合 regex的正则表达式格式,返回true, 否则返回 false;
     */
    private static boolean match(String regex, String str)
    {
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        return matcher.matches();
    }
}



© 著作权归作者所有

共有 人打赏支持
目翟
粉丝 4
博文 25
码字总数 26183
作品 0
闸北
高级程序员
通过 HttpAuthenticationMechanism 执行 Web 身份验证

通过 Java EE 8 中新的注解驱动的 HTTP 身份验证机制执行经典和自定义的 Servlet 身份验证 系列内容: 此内容是该系列 4 部分中的第 # 部分: Java EE 8 Security API 入门,第 2 部分 http...

Alex Theedom ⋅ 04/02 ⋅ 0

Common Gui Tools 1.4 发布,Java GUI 实用小工具集

Java GUI实用小工具集 Common Gui Tools 新增:二维码生成解析、时间戳转换、Json格式化、文本文件切分等。 Common Gui Tools 是用java编写,GUI界面的实用小工具集,1.4版有20个小工具: 1,...

bs2004 ⋅ 04/22 ⋅ 0

升级到JDK9的一个BUG,你了解吗

概述 前几天在一个群里看到一个朋友发了一个demo,说是JDK的bug,昨天在JVM的一个群里又有朋友发了,觉得挺有意思,分享给大家,希望大家升级JDK的版本的时候注意下是否存在这样的代码,如果...

你假笨 ⋅ 06/06 ⋅ 0

Windows server 2008和centos 7安装jdk

Windows server 2008和centos 7安装jdk JDK JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Jav...

luchao669 ⋅ 05/31 ⋅ 0

深入理解JVM学习笔记(一、总览)

1、JVM历史 2、JVM内存结构 3、JVM垃圾回收机制 4、JVM性能监控工具 5、JVM性能调优案例时间 6、JVM类文件结构 7、JVM类加载机制 8、JVM字节码执行引擎 9、JVM虚拟机编译及其运行时优化 10、...

jintaohahahaha ⋅ 05/28 ⋅ 0

结合JVM源码谈Java类加载器

一、前言 之前文章 Java 类加载器揭秘 从Java层面讲解了Java类加载器的原理,这里我们结合JVM源码在稍微深入讲解下。 二、Java类加载器的委托机制 Java 类加载器使用的是委托机制,也就是一个...

阿里加多 ⋅ 04/29 ⋅ 0

Maven的安装文字版(Windows/Linux/Mac)

以下内容引用自https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/mavenenvironment_setup.html,安装信息更新到最新版本: Maven是基于Java的工具,所以首要必须的要求是你的电...

easonjim ⋅ 2017/05/07 ⋅ 0

JavaWeb07-HTML篇笔记(二)

1.1 案例一:使用JDBC完成CRUD的操作:1.1.1 需求: 对分类管理使用JDBC进行CRUD的操作. 1.1.2 分析:1.1.2.1 技术分析: 【JDBC的概述】 Ø JDBC:Java DataBase Connectivity Java数据库的连...

我是小谷粒 ⋅ 05/16 ⋅ 0

Java 实现的 SSH 库 - Java-SSH

JSSH 是一个实现了SSH 1.5客户端协议的Java类库,可以被应用于其他Java应用程序. 需要注意的是,JSSH不能用于applet,因为它需要访问本地文件系统来检查服务器的host key是否存在于~/.ssh/kn...

匿名 ⋅ 2012/04/12 ⋅ 0

java程序员基础进阶篇,万丈高楼平地起

一.final,finally,finalize 三者区别 Final是一个修饰符: 当final修饰一个变量的时候,变量变成一个常量,它不能被二次赋值 当final修饰的变量为静态变量(即由static修饰)时,必须在声明这...

启示录是真的 ⋅ 05/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

tcp/ip详解-链路层

简介 设计链路层的目的: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答 为RARP模块发送RARP请求和接收RARP应答 TCP/IP支持多种链路层协议,如以太网、令牌环往、FDDI、RS-...

loda0128 ⋅ 46分钟前 ⋅ 0

spring.net aop代码例子

https://www.cnblogs.com/haogj/archive/2011/10/12/2207916.html

whoisliang ⋅ 今天 ⋅ 0

发送短信如何限制1小时内最多发送11条短信

发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当...

黄威 ⋅ 昨天 ⋅ 0

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

SpringBoot简单使用ehcache

1,SpringBoot版本 2.0.3.RELEASE ①,pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELE......

暗中观察 ⋅ 昨天 ⋅ 0

Spring源码解析(八)——实例创建(下)

前言 来到实例创建的最后一节,前面已经将一个实例通过不同方式(工厂方法、构造器注入、默认构造器)给创建出来了,下面我们要对创建出来的实例进行一些“加工”处理。 源码解读 回顾下之前...

MarvelCode ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部