import java.util.regex.Matcher;
import java.util.regex.Pattern; public class RegexUtils{ /**
* 正则表达式验证字符串
*
* @param reg
* @param str
* @return
*/
private final static boolean match(String regex, String str) {
if (null == str || "".equals(str)) {
return false;
} else {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
return m.matches();
}
} /**
* 验证Email
*
* @param email
* email地址,格式:i@510blog.cn.com,zhangsan@xxx.com.cn, xxx代表邮件服务商
* @return 验证成功返回true,验证失败返回false
*/
public static boolean isEmail(String email) {
String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?"; // 复杂匹配
return match(regex, email);
} /**
* 验证URL地址
*
* @param url
* 格式:http://blog.csdn.net:80/xyang81/article/details/7705960? 或
* http://www.csdn.net:80
* @return 验证成功返回true,验证失败返回false
*/
public static boolean isUrl(String url) {
String regex = "(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?";
return match(regex, url);
} /**
* 验证固定电话号码
*
* @param phone
* 电话号码,格式:国家(地区)电话代码 + 区号(城市代码) + 电话号码,如:+8602085588447
* <p>
* <b>国家(地区) 代码 :</b>标识电话号码的国家(地区)的标准国家(地区)代码。它包含从 0 到 9
* 的一位或多位数字, 数字之后是空格分隔的国家(地区)代码。
* </p>
* <p>
* <b>区号(城市代码):</b>这可能包含一个或多个从 0 到 9 的数字,地区或城市代码放在圆括号——
* 对不使用地区或城市代码的国家(地区),则省略该组件。
* </p>
* <p>
* <b>电话号码:</b>这包含从 0 到 9 的一个或多个数字
* </p>
* @return 验证成功返回true,验证失败返回false
*/
public static boolean isPhone(String phone) {
String regex = "(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$";
return match(regex, phone);
} /**
* 验证手机号码(支持国际格式,+86135xxxx...(中国内地),+00852137xxxx...(中国香港))
*
* @param mobile
* 移动、联通、电信运营商的号码段
* <p>
* 移动的号段:134(0-8)、135、136、137、138、139、147(预计用于TD上网卡)
* 、150、151、152、157(TD专用)、158、159、187(未启用)、188(TD专用)
* </p>
* <p>
* 联通的号段:130、131、132、155、156(世界风专用)、185(未启用)、186(3g)
* </p>
* <p>
* 电信的号段:133、153、180(未启用)、189
* </p>
* @return 验证成功返回true,验证失败返回false
*/
public static boolean isMobile(String mobile) {
String regex = "(\\+\\d+)?1[3458]\\d{9}$";
return match(regex, mobile);
} /**
* 判断是否为数值
*
* @param s
* @return
*/
public static boolean isNumeric(String numeric) {
String regex = "^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$";
return match(regex, numeric);
} /**
* 验证整数(正整数和负整数)
*
* @param digit
* 一位或多位0-9之间的整数
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkDigit(String digit) {
String regex = "\\-?[1-9]\\d+";
return match(regex, digit);
} /**
* 判断是否为数字字符串
*
* @param digit
* @return 验证成功返回true,验证失败返回false
*/
public static boolean isDigitString(String digit) {
String regex = "^[0-9]*$";
return match(regex, digit);
} /**
* 验证IP
*
* @param ip
* @return
*/
public static boolean isIP(String ip) {
String num = "(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)";
String regex = "^" + num + "\\." + num + "\\." + num + "\\." + num + "$";
return match(regex, ip);
} /**
* 匹配中国邮政编码
*
* @param postcode
* 邮政编码
* @return 验证成功返回true,验证失败返回false
*/
public static boolean isPostcode(String postcode) {
String regex = "[1-9]\\d{5}";
return match(regex, postcode);
} /**
* 验证车牌号
*
* @param chePaiHao
* @return
*/
public static boolean isChePaiHao(String chePaiHao) {
String regex1 = "^[\u4E00-\u9FA5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{5}$";
String regex2 = "^使[a-zA-Z_0-9]{6}$";
String regex3 = "^(BL)[a-zA-Z_0-9]{5}$";
return match(regex1, chePaiHao) || match(regex2, chePaiHao) || match(regex3, chePaiHao);
} /**
* 验证用户名,用户名只能由6到15位数字、字母、下划线组成!
*
* @param username
* @return
*/
public static boolean username(String username) {
String regex = "^([a-z]|[A-Z])[\\w]{6,20}$";
return match(regex, username);
} /**
* 验证中文姓名,两到四个汉字!
*
* @param trueName
* @return
*/
public static boolean trueName(String trueName) {
String regex = "^[\u4e00-\u9fa5]{2,4}$";
return match(regex, trueName);
} /**
* 验证密码,表示以匹配字母开头(不区分大小写),随后字符以字母、数字、下划线组成,长度 6 到 20 位
*
* @param password
* @return
*/
public static boolean password(String password) {
String regex = "^([a-z]|[A-Z])[\\w]{6,20}$";
return match(regex, password);
} /**
* 验证会员卡号,5129008866XXXXX
*
* @param kh
* @return
*/
public static boolean isHuiYuanKaHao(String kh) {
String regex = "^(5129008866)[0-9]{6}$";
return match(regex, kh);
} /**
* 判断str 是否是一个合法的Long型
*
* @param str
* @return
*/
public static boolean isLong(String str) {
try {
Long.parseLong(str);
return true;
} catch (NumberFormatException e) {
return false;
}
} }

Java常用正则表达式验证工具类RegexUtils.java的更多相关文章

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

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

  2. java常用正则校验工具类

    正则常用校验工具类 import java.util.regex.Pattern; /** * @program: * @description: 校验工具类 * @author: xujingyan ...

  3. 验证工具类 - ValidateUtils.java

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

  4. java 常用Bean 转换工具类

    package com.hnf.framework.utils; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.data ...

  5. Java常用API——Arrays工具类

    介绍:Arrays工具类提供了一些可以直接操作数组的方法,以下是一些常用方法: int binarySearch(type[] a, type key):要求数组a元素升序排列,使用二分法搜索key的 ...

  6. 写一个java常用的加密工具类

    1.叙述 java security包下有很多加密算法类,我们可以很简单的调用它们.他们虽然功能很全,但是使用起来步骤有些繁琐.我在这里封装来一些常用的加密算法及他们常用的一些方法,来简化代码. 工具 ...

  7. hibernate 配置文件 和一个 id生成类BaseEntity.java 和一个hibernate工具类 HibernatUtils.java

    package com; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate ...

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

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

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

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

随机推荐

  1. 解决服务器时间Local time和RTC time不一致的问题

    今天遇到了一个问题,发现程序读取的时间比实际的时间快了几分钟. 执行 timedatectl status 发现 Local time比实际的快,但是RTC time是准确的. 各种google也没搞 ...

  2. phonegap开发经验谈之一命令行建立项目和准备工作

    一安装与配置 安装命令行配置,这个可以参见网上的.3.0的最好用命令行配置. 大家在安装android sdk的时候,会发现里面自带了一个eclipse,并且继承了adt,直接用这个就好了.当然你已经 ...

  3. 背景:表A数据误操作,被delete了,恢复。

    SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < TO_DATE('2015-09-18', 'YYYY/MM/DD') select ...

  4. iOS核心动画学习整理

    最近利用业余时间终于把iOS核心动画高级技巧(https://zsisme.gitbooks.io/ios-/content/chapter1/the-layer-tree.html)看完,对应其中一 ...

  5. 用Js+css3实现图片旋转,缩放,裁剪,滤镜

    还是前端图片的老话题,花了半天时间,东拼西凑,凑出个demo,优点在于代码少,核心代码就6行,目前刚做了旋转,缩放,裁剪,滤镜要js做,网络上也有现成的代码, 但是想做到自定义的滤镜咋办呢?这还要从底 ...

  6. MVC4中的Display Mode简介

    本文地址:http://www.cnblogs.com/egger/p/3400076.html  欢迎转载 ,请保留此链接๑•́ ₃•̀๑! 今天学习MVC4时,看到一个不错的特性"vie ...

  7. 用hasOwnProperty获取对象自身的属性排除原型链

    今天遇到一个多层级的object. 需要判定每一层级的data下是否有title属性.在下图中展开的data自身其实是没有title的,但由于受到原型链__proto__的影响,在获取parent.d ...

  8. jquery插件开发基础入门

    jquery插件开发基础入门 入门 编写一个jquery插件开始于给jquery.fn加入新的功能属性,此处添加的对象属性的名称就是你的插件名称 jQuery.fn,myPlugin = functi ...

  9. linux下mysql函数的详细案列

    MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *pas ...

  10. ABAP之PINYING拼音

    前面说了声母韵母,那么现在来说说ABAP里的拼音——域,数据元素,结构 PINGGUO = 苹果 T-CODE : SE11   如下图 域:是一些特定值的集合,或者某一种特殊用途的集合.如:需要定义 ...