Java常用正则表达式验证工具类RegexUtils.java
正则表达式常常用来验证各种表单,Java表单注册常用正则表达式验证工具类,常用正则表达式大集合。
1.电话号码
2.邮编
3.QQ
4.E-mail
5.手机号码
6.URL
7.是否为数字
8.是否为中文
9.身份证
10.域名
11.IP。。。。
常用验证应有尽有!这的确是您从事web开发,服务器端表单验证之良品!你,值得拥有^_^
/*
*Copyright2012-2013TheHaohuiNetworkCorporation
*/
packagecom.haohui.common.utils;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
/**
*@projectbaidamei
*@authorcevencheng<cevencheng@gmail.com>
*@create2012-11-15下午4:54:42
*/
publicclassRegexUtils{
/**
*验证Email
*@paramemailemail地址,格式:zhangsan@zuidaima.com,zhangsan@xxx.com.cn,xxx代表邮件服务商
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckEmail(Stringemail){
Stringregex="\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";
returnPattern.matches(regex,email);
}
/**
*验证身份证号码
*@paramidCard居民身份证号码15位或18位,最后一位可能是数字或字母
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckIdCard(StringidCard){
Stringregex="[1-9]\\d{13,16}[a-zA-Z0-9]{1}";
returnPattern.matches(regex,idCard);
}
/**
*验证手机号码(支持国际格式,+86135xxxx...(中国内地),+00852137xxxx...(中国香港))
*@parammobile移动、联通、电信运营商的号码段
*<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
*/
publicstaticbooleancheckMobile(Stringmobile){
Stringregex="(\\+\\d+)?1[34578]\\d{9}$";
returnPattern.matches(regex,mobile);
}
/**
*验证固定电话号码
*@paramphone电话号码,格式:国家(地区)电话代码+区号(城市代码)+电话号码,如:+8602085588447
*<p><b>国家(地区)代码:</b>标识电话号码的国家(地区)的标准国家(地区)代码。它包含从0到9的一位或多位数字,
*数字之后是空格分隔的国家(地区)代码。</p>
*<p><b>区号(城市代码):</b>这可能包含一个或多个从0到9的数字,地区或城市代码放在圆括号——
*对不使用地区或城市代码的国家(地区),则省略该组件。</p>
*<p><b>电话号码:</b>这包含从0到9的一个或多个数字</p>
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckPhone(Stringphone){
Stringregex="(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$";
returnPattern.matches(regex,phone);
}
/**
*验证整数(正整数和负整数)
*@paramdigit一位或多位0-9之间的整数
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckDigit(Stringdigit){
Stringregex="\\-?[1-9]\\d+";
returnPattern.matches(regex,digit);
}
/**
*验证整数和浮点数(正负整数和正负浮点数)
*@paramdecimals一位或多位0-9之间的浮点数,如:1.23,233.30
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckDecimals(Stringdecimals){
Stringregex="\\-?[1-9]\\d+(\\.\\d+)?";
returnPattern.matches(regex,decimals);
}
/**
*验证空白字符
*@paramblankSpace空白字符,包括:空格、\t、\n、\r、\f、\x0B
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckBlankSpace(StringblankSpace){
Stringregex="\\s+";
returnPattern.matches(regex,blankSpace);
}
/**
*验证中文
*@paramchinese中文字符
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckChinese(Stringchinese){
Stringregex="^[\u4E00-\u9FA5]+$";
returnPattern.matches(regex,chinese);
}
/**
*验证日期(年月日)
*@parambirthday日期,格式:1992-09-03,或1992.09.03
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckBirthday(Stringbirthday){
Stringregex="[1-9]{4}([-./])\\d{1,2}\\1\\d{1,2}";
returnPattern.matches(regex,birthday);
}
/**
*验证URL地址
*@paramurl格式:http://blog.csdn.net:80/xyang81/article/details/7705960?或http://www.csdn.net:80
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckURL(Stringurl){
Stringregex="(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?";
returnPattern.matches(regex,url);
}
/**
*<pre>
*获取网址URL的一级域
*</pre>
*
*@paramurl
*@return
*/
publicstaticStringgetDomain(Stringurl){
Patternp=Pattern.compile("(?<=http://|\\.)[^.]*?\\.(com|cn|net|org|biz|info|cc|tv)",Pattern.CASE_INSENSITIVE);
//获取完整的域名
//Patternp=Pattern.compile("[^//]*?\\.(com|cn|net|org|biz|info|cc|tv)",Pattern.CASE_INSENSITIVE);
Matchermatcher=p.matcher(url);
matcher.find();
returnmatcher.group();
}
/**
*匹配中国邮政编码
*@parampostcode邮政编码
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckPostcode(Stringpostcode){
Stringregex="[1-9]\\d{5}";
returnPattern.matches(regex,postcode);
}
/**
*匹配IP地址(简单匹配,格式,如:192.168.1.1,127.0.0.1,没有匹配IP段的大小)
*@paramipAddressIPv4标准地址
*@return验证成功返回true,验证失败返回false
*/
publicstaticbooleancheckIpAddress(StringipAddress){
Stringregex="[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))";
returnPattern.matches(regex,ipAddress);
}
}
分享一个用正则表达式校验电话号码、身份证号、日期格式、URL、Email等等格式的工具类
packagecom.eabax.util;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
/**
*验证工具类
*@authoradmin
*
*/
publicclassValidation{
//------------------常量定义
/**
*Email正则表达式="^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
*/
//publicstaticfinalStringEMAIL="^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";;
publicstaticfinalStringEMAIL="\\w+(\\.\\w+)*@\\w+(\\.\\w+)+";
/**
*电话号码正则表达式=(^(\d{2,4}[-_-—]?)?\d{3,8}([-_-—]?\d{3,8})?([-_-—]?\d{1,7})?$)|(^0?1[35]\d{9}$)
*/
publicstaticfinalStringPHONE="(^(\\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}$
*/
publicstaticfinalStringMOBILE="^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9])\\d{8}$";
/**
*Integer正则表达式^-?(([1-9]\d*$)|0)
*/
publicstaticfinalStringINTEGER="^-?(([1-9]\\d*$)|0)";
/**
*正整数正则表达式>=0^[1-9]\d*|0$
*/
publicstaticfinalStringINTEGER_NEGATIVE="^[1-9]\\d*|0$";
/**
*负整数正则表达式<=0^-[1-9]\d*|0$
*/
publicstaticfinalStringINTEGER_POSITIVE="^-[1-9]\\d*|0$";
/**
*Double正则表达式^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
*/
publicstaticfinalStringDOUBLE="^-?([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$
*/
publicstaticfinalStringDOUBLE_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$
*/
publicstaticfinalStringDOUBLE_POSITIVE="^(-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*))|0?\\.0+|0$";
/**
*年龄正则表达式^(?:[1-9][0-9]?|1[01][0-9]|120)$匹配0-120岁
*/
publicstaticfinalStringAGE="^(?:[1-9][0-9]?|1[01][0-9]|120)$";
/**
*邮编正则表达式[0-9]\d{5}(?!\d)国内6位邮编
*/
publicstaticfinalStringCODE="[0-9]\\d{5}(?!\\d)";
/**
*匹配由数字、26个英文字母或者下划线组成的字符串^\w+$
*/
publicstaticfinalStringSTR_ENG_NUM_="^\\w+$";
/**
*匹配由数字和26个英文字母组成的字符串^[A-Za-z0-9]+$
*/
publicstaticfinalStringSTR_ENG_NUM="^[A-Za-z0-9]+";
/**
*匹配由26个英文字母组成的字符串^[A-Za-z]+$
*/
publicstaticfinalStringSTR_ENG="^[A-Za-z]+$";
/**
*过滤特殊字符串正则
*regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“'。,、?]";
*/
publicstaticfinalStringSTR_SPECIAL="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“'。,、?]";
/***
*日期正则支持:
*YYYY-MM-DD
*YYYY/MM/DD
*YYYY_MM_DD
*YYYYMMDD
*YYYY.MM.DD的形式
*/
publicstaticfinalStringDATE_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
*/
publicstaticfinalStringDATE_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正则表达式
*匹配httpwwwftp
*/
publicstaticfinalStringURL="^(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*)*)$";
/**
*身份证正则表达式
*/
publicstaticfinalStringIDCARD="((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}))";
/**
*机构代码
*/
publicstaticfinalStringJIGOU_CODE="^[A-Z0-9]{8}-[A-Z0-9]$";
/**
*匹配数字组成的字符串^[0-9]+$
*/
publicstaticfinalStringSTR_NUM="^[0-9]+$";
////------------------验证方法
/**
*判断字段是否为空符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticsynchronizedbooleanStrisNull(Stringstr){
returnnull==str||str.trim().length()<=0?true:false;
}
/**
*判断字段是非空符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanStrNotNull(Stringstr){
return!StrisNull(str);
}
/**
*字符串null转空
*@paramstr
*@returnboolean
*/
publicstaticStringnulltoStr(Stringstr){
returnStrisNull(str)?"":str;
}
/**
*字符串null赋值默认值
*@paramstr目标字符串
*@paramdefaut默认值
*@returnString
*/
publicstaticStringnulltoStr(Stringstr,Stringdefaut){
returnStrisNull(str)?defaut:str;
}
/**
*判断字段是否为Email符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisEmail(Stringstr){
returnRegular(str,EMAIL);
}
/**
*判断是否为电话号码符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisPhone(Stringstr){
returnRegular(str,PHONE);
}
/**
*判断是否为手机号码符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisMobile(Stringstr){
returnRegular(str,MOBILE);
}
/**
*判断是否为Url符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisUrl(Stringstr){
returnRegular(str,URL);
}
/**
*判断字段是否为数字正负整数正负浮点数符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisNumber(Stringstr){
returnRegular(str,DOUBLE);
}
/**
*判断字段是否为INTEGER符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisInteger(Stringstr){
returnRegular(str,INTEGER);
}
/**
*判断字段是否为正整数正则表达式>=0符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisINTEGER_NEGATIVE(Stringstr){
returnRegular(str,INTEGER_NEGATIVE);
}
/**
*判断字段是否为负整数正则表达式<=0符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisINTEGER_POSITIVE(Stringstr){
returnRegular(str,INTEGER_POSITIVE);
}
/**
*判断字段是否为DOUBLE符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisDouble(Stringstr){
returnRegular(str,DOUBLE);
}
/**
*判断字段是否为正浮点数正则表达式>=0符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisDOUBLE_NEGATIVE(Stringstr){
returnRegular(str,DOUBLE_NEGATIVE);
}
/**
*判断字段是否为负浮点数正则表达式<=0符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisDOUBLE_POSITIVE(Stringstr){
returnRegular(str,DOUBLE_POSITIVE);
}
/**
*判断字段是否为日期符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisDate(Stringstr){
returnRegular(str,DATE_ALL);
}
/**
*验证2010-12-10
*@paramstr
*@return
*/
publicstaticbooleanisDate1(Stringstr){
returnRegular(str,DATE_FORMAT1);
}
/**
*判断字段是否为年龄符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisAge(Stringstr){
returnRegular(str,AGE);
}
/**
*判断字段是否超长
*字串为空返回fasle,超过长度{leng}返回ture反之返回false
*@paramstr
*@paramleng
*@returnboolean
*/
publicstaticbooleanisLengOut(Stringstr,intleng){
returnStrisNull(str)?false:str.trim().length()>leng;
}
/**
*判断字段是否为身份证符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisIdCard(Stringstr){
if(StrisNull(str))returnfalse;
if(str.trim().length()==15||str.trim().length()==18){
returnRegular(str,IDCARD);
}else{
returnfalse;
}
}
/**
*判断字段是否为邮编符合返回ture
*@paramstr
*@returnboolean
*/
publicstaticbooleanisCode(Stringstr){
returnRegular(str,CODE);
}
/**
*判断字符串是不是全部是英文字母
*@paramstr
*@returnboolean
*/
publicstaticbooleanisEnglish(Stringstr){
returnRegular(str,STR_ENG);
}
/**
*判断字符串是不是全部是英文字母+数字
*@paramstr
*@returnboolean
*/
publicstaticbooleanisENG_NUM(Stringstr){
returnRegular(str,STR_ENG_NUM);
}
/**
*判断字符串是不是全部是英文字母+数字+下划线
*@paramstr
*@returnboolean
*/
publicstaticbooleanisENG_NUM_(Stringstr){
returnRegular(str,STR_ENG_NUM_);
}
/**
*过滤特殊字符串返回过滤后的字符串
*@paramstr
*@returnboolean
*/
publicstaticStringfilterStr(Stringstr){
Patternp=Pattern.compile(STR_SPECIAL);
Matcherm=p.matcher(str);
returnm.replaceAll("").trim();
}
/**
*校验机构代码格式
*@return
*/
publicstaticbooleanisJigouCode(Stringstr){
returnRegular(str,JIGOU_CODE);
}
/**
*判断字符串是不是数字组成
*@paramstr
*@returnboolean
*/
publicstaticbooleanisSTR_NUM(Stringstr){
returnRegular(str,STR_NUM);
}
/**
*匹配是否符合正则表达式pattern匹配返回true
*@paramstr匹配的字符串
*@parampattern匹配模式
*@returnboolean
*/
privatestaticbooleanRegular(Stringstr,Stringpattern){
if(null==str||str.trim().length()<=0)
returnfalse;
Patternp=Pattern.compile(pattern);
Matcherm=p.matcher(str);
returnm.matches();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。