正则表达式验证工具类RegexUtils.java
2017-03-30 09:12
537 查看
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
原文:<a target="_blank" href="http://www.zuidaima.com/share/1550463379442688.htm" class="title" style="color:rgb(0,137,200); text-decoration:none; font-size:14px; font-weight:bold">Java常用正则表达式验证工具类RegexUtils.java</a></p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
源代码下载地址:<a target="_blank" href="http://www.zuidaima.com/share/1550463379442688.htm" style="color:rgb(51,102,153); text-decoration:none">http://www.zuidaima.com/share/1550463379442688.htm</a></p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
<a href="http://lib.csdn.net/base/javase" class="replace_word" title="Java SE知识库" target="_blank" style="color:#df3434; font-weight:bold;">Java</a> 表单注册常用正则表达式验证工具类,常用正则表达式大集合。</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
1. 电话号码</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
2. 邮编</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
3. QQ</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
4. E-mail</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
5. 手机号码</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
6. URL</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
7. 是否为数字</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
8. 是否为中文</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
9. 身份证</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
10. 域名</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
11. IP 。。。。</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
常用验证应有尽有! 这的确是您从事 web 开发,服务器端表单验证之良品!你,值得拥有 ^_^</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
</p>
<div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><b>[java]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard"
title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 557px; top: 1005px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_1" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf"
loop="false" menu="false" quality="best" bgcolor="#ffffff" name="ZeroClipboardMovie_1" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=18&height=18"
wmode="transparent" align="middle" height="18" width="18"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?"
onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-j"><li class="alt"><span><span class="comment">/*</span> </span></li><li class=""><span><span class="comment"> * Copyright 2012-2013 The Haohui Network Corporation</span> </span></li><li
class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span><span class="keyword">package</span><span> com.haohui.common.utils; </span></span></li><li class="alt"><span> </span></li><li
class=""><span><span class="keyword">import</span><span> java.util.regex.Matcher; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> java.util.regex.Pattern; </span></span></li><li class=""><span> </span></li><li
class="alt"><span><span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * @project baidamei</span> </span></li><li class="alt"><span><span class="comment"> * @author cevencheng <cevencheng@gmail.com> www.zuidaima.com</span> </span></li><li
class=""><span><span class="comment"> * @create 2012-11-15 下午4:54:42</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span><span class="keyword">public</span><span> </span><span
class="keyword">class</span><span> RegexUtils { </span></span></li><li class="alt"><span> </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span
class="comment"> * 验证Email</span> </span></li><li class=""><span><span class="comment"> * @param email email地址,格式:zhangsan@zuidaima.com,zhangsan@xxx.com.cn,xxx代表邮件服务商</span> </span></li><li
class="alt"><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class=""><span><span class="comment"> */</span><span> </span></span></li><li
class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkEmail(String email) { </span></span></li><li
class=""><span> String regex = <span class="string">"\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?"</span><span>; </span></span></li><li class="alt"><span> <span
class="keyword">return</span><span> Pattern.matches(regex, email); </span></span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li
class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 验证身份证号码</span> </span></li><li class=""><span><span class="comment"> * @param idCard 居民身份证号码15位或18位,最后一位可能是数字或字母</span> </span></li><li
class="alt"><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class=""><span><span class="comment"> */</span><span> </span></span></li><li
class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkIdCard(String idCard) { </span></span></li><li
class=""><span> String regex = <span class="string">"[1-9]\\d{13,16}[a-zA-Z0-9]{1}"</span><span>; </span></span></li><li class="alt"><span> <span
class="keyword">return</span><span> Pattern.matches(regex,idCard); </span></span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li
class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 验证手机号码(支持国际格式,+86135xxxx...(中国内地),+00852137xxxx...(中国香港))</span> </span></li><li
class=""><span><span class="comment"> * @param mobile 移动、联通、电信运营商的号码段</span> </span></li><li class="alt"><span><span class="comment"> *<p>移动的号段:134(0-8)、135、136、137、138、139、147(预计用于TD上网卡)</span> </span></li><li
class=""><span><span class="comment"> *、150、151、152、157(TD专用)、158、159、187(未启用)、188(TD专用)</p></span> </span></li><li class="alt"><span><span class="comment"> *<p>联通的号段:130、131、132、155、156(世界风专用)、185(未启用)、186(3g)</p></span> </span></li><li
class=""><span><span class="comment"> *<p>电信的号段:133、153、180(未启用)、189</p></span> </span></li><li class="alt"><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class=""><span><span class="comment"> */</span><span> </span></span></li><li class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkMobile(String mobile) { </span></span></li><li class=""><span> String regex = <span class="string">"(\\+\\d+)?1[3458]\\d{9}$"</span><span>; </span></span></li><li
class="alt"><span> <span class="keyword">return</span><span> Pattern.matches(regex,mobile); </span></span></li><li class=""><span> } </span></li><li
class="alt"><span> </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 验证固定电话号码</span> </span></li><li
class=""><span><span class="comment"> * @param phone 电话号码,格式:国家(地区)电话代码 + 区号(城市代码) + 电话号码,如:+8602085588447</span> </span></li><li class="alt"><span><span class="comment"> * <p><b>国家(地区) 代码 :</b>标识电话号码的国家(地区)的标准国家(地区)代码。它包含从 0 到 9 的一位或多位数字,</span> </span></li><li
class=""><span><span class="comment"> * 数字之后是空格分隔的国家(地区)代码。</p></span> </span></li><li class="alt"><span><span class="comment"> * <p><b>区号(城市代码):</b>这可能包含一个或多个从 0 到 9 的数字,地区或城市代码放在圆括号——</span> </span></li><li
class=""><span><span class="comment"> * 对不使用地区或城市代码的国家(地区),则省略该组件。</p></span> </span></li><li class="alt"><span><span class="comment"> * <p><b>电话号码:</b>这包含从 0 到 9 的一个或多个数字 </p></span> </span></li><li
class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li
class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkPhone(String phone) { </span></span></li><li
class="alt"><span> String regex = <span class="string">"(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$"</span><span>; </span></span></li><li class=""><span> <span
class="keyword">return</span><span> Pattern.matches(regex, phone); </span></span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li
class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * 验证整数(正整数和负整数)</span> </span></li><li class="alt"><span><span class="comment"> * @param digit 一位或多位0-9之间的整数</span> </span></li><li
class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li
class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkDigit(String digit) { </span></span></li><li
class="alt"><span> String regex = <span class="string">"\\-?[1-9]\\d+"</span><span>; </span></span></li><li class=""><span> <span
class="keyword">return</span><span> Pattern.matches(regex,digit); </span></span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li
class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * 验证整数和浮点数(正负整数和正负浮点数)</span> </span></li><li class="alt"><span><span class="comment"> * @param decimals 一位或多位0-9之间的浮点数,如:1.23,233.30</span> </span></li><li
class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li
class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkDecimals(String decimals) { </span></span></li><li
class="alt"><span> String regex = <span class="string">"\\-?[1-9]\\d+(\\.\\d+)?"</span><span>; </span></span></li><li class=""><span> <span
class="keyword">return</span><span> Pattern.matches(regex,decimals); </span></span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li
class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * 验证空白字符</span> </span></li><li class="alt"><span><span class="comment"> * @param blankSpace 空白字符,包括:空格、\t、\n、\r、\f、\x0B</span> </span></li><li
class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li
class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkBlankSpace(String blankSpace) { </span></span></li><li
class="alt"><span> String regex = <span class="string">"\\s+"</span><span>; </span></span></li><li class=""><span> <span class="keyword">return</span><span> Pattern.matches(regex,blankSpace); </span></span></li><li
class="alt"><span> } </span></li><li class=""><span> </span></li><li class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span
class="comment"> * 验证中文</span> </span></li><li class="alt"><span><span class="comment"> * @param chinese 中文字符</span> </span></li><li class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkChinese(String chinese) { </span></span></li><li class="alt"><span> String regex = <span class="string">"^[\u4E00-\u9FA5]+$"</span><span>; </span></span></li><li
class=""><span> <span class="keyword">return</span><span> Pattern.matches(regex,chinese); </span></span></li><li class="alt"><span> } </span></li><li
class=""><span> </span></li><li class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * 验证日期(年月日)</span> </span></li><li
class="alt"><span><span class="comment"> * @param birthday 日期,格式:1992-09-03,或1992.09.03</span> </span></li><li class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkBirthday(String birthday) { </span></span></li><li class="alt"><span> String regex = <span class="string">"[1-9]{4}([-./])\\d{1,2}\\1\\d{1,2}"</span><span>; </span></span></li><li
class=""><span> <span class="keyword">return</span><span> Pattern.matches(regex,birthday); </span></span></li><li class="alt"><span> } </span></li><li
class=""><span> </span></li><li class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * 验证URL地址</span> </span></li><li
class="alt"><span><span class="comment"> * @param url 格式:http://blog.csdn.net:80/xyang81/article/details/7705960? 或 http://www.csdn.net:80</span> </span></li><li class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkURL(String url) { </span></span></li><li class="alt"><span> String regex = <span class="string">"(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?"</span><span>; </span></span></li><li
class=""><span> <span class="keyword">return</span><span> Pattern.matches(regex, url); </span></span></li><li class="alt"><span> } </span></li><li
class=""><span> </span></li><li class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * <pre></span> </span></li><li
class="alt"><span><span class="comment"> * 获取网址 URL 的一级域名</span> </span></li><li class=""><span><span class="comment"> * http://www.zuidaima.com/share/1550463379442688.htm ->> zuidaima.com</span> </span></li><li
class="alt"><span><span class="comment"> * </pre></span> </span></li><li class=""><span><span class="comment"> * </span> </span></li><li class="alt"><span><span class="comment"> * @param url</span> </span></li><li
class=""><span><span class="comment"> * @return</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span> <span
class="keyword">public</span><span> </span><span class="keyword">static</span><span> String getDomain(String url) { </span></span></li><li class="alt"><span> Pattern p = Pattern.compile(<span
class="string">"(?<=http://|\\.)[^.]*?\\.(com|cn|net|org|biz|info|cc|tv)"</span><span>, Pattern.CASE_INSENSITIVE); </span></span></li><li class=""><span> <span class="comment">// 获取完整的域名</span><span> </span></span></li><li
class="alt"><span> <span class="comment">// Pattern p=Pattern.compile("[^//]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE);</span><span> </span></span></li><li class=""><span> Matcher matcher = p.matcher(url); </span></li><li
class="alt"><span> matcher.find(); </span></li><li class=""><span> <span class="keyword">return</span><span> matcher.group(); </span></span></li><li
class="alt"><span> } </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 匹配中国邮政编码</span> </span></li><li
class=""><span><span class="comment"> * @param postcode 邮政编码</span> </span></li><li class="alt"><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class=""><span><span class="comment"> */</span><span> </span></span></li><li class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkPostcode(String postcode) { </span></span></li><li class=""><span> String regex = <span class="string">"[1-9]\\d{5}"</span><span>; </span></span></li><li
class="alt"><span> <span class="keyword">return</span><span> Pattern.matches(regex, postcode); </span></span></li><li class=""><span> } </span></li><li
class="alt"><span> </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 匹配IP地址(简单匹配,格式,如:192.168.1.1,127.0.0.1,没有匹配IP段的大小)</span> </span></li><li
class=""><span><span class="comment"> * @param ipAddress IPv4标准地址</span> </span></li><li class="alt"><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class=""><span><span class="comment"> */</span><span> </span></span></li><li class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkIpAddress(String ipAddress) { </span></span></li><li class=""><span> String regex = <span class="string">"[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))"</span><span>; </span></span></li><li
class="alt"><span> <span class="keyword">return</span><span> Pattern.matches(regex, ipAddress); </span></span></li><li class=""><span> } </span></li><li
class="alt"><span> </span></li><li class=""><span>} </span></li><li class="alt"><span> </span></li><li class=""><span> </span></li></ol><div
class="save_code tracking-ad" data-mod="popu_249" style="display: none;"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="java" style="display: none;">/*
* Copyright 2012-2013 The Haohui Network Corporation
*/
package com.haohui.common.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @project baidamei
* @author cevencheng <cevencheng@gmail.com> www.zuidaima.com
* @create 2012-11-15 下午4:54:42
*/
public class RegexUtils {
/**
* 验证Email
* @param email email地址,格式:zhangsan@zuidaima.com,zhangsan@xxx.com.cn,xxx代表邮件服务商
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkEmail(String email) {
String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";
return Pattern.matches(regex, email);
}
/**
* 验证身份证号码
* @param idCard 居民身份证号码15位或18位,最后一位可能是数字或字母
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkIdCard(String idCard) {
String regex = "[1-9]\\d{13,16}[a-zA-Z0-9]{1}";
return Pattern.matches(regex,idCard);
}
/**
* 验证手机号码(支持国际格式,+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 checkMobile(String mobile) {
String regex = "(\\+\\d+)?1[3458]\\d{9}$";
return Pattern.matches(regex,mobile);
}
/**
* 验证固定电话号码
* @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 checkPhone(String phone) {
String regex = "(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$";
return Pattern.matches(regex, phone);
}
/**
* 验证整数(正整数和负整数)
* @param digit 一位或多位0-9之间的整数
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkDigit(String digit) {
String regex = "\\-?[1-9]\\d+";
return Pattern.matches(regex,digit);
}
/**
* 验证整数和浮点数(正负整数和正负浮点数)
* @param decimals 一位或多位0-9之间的浮点数,如:1.23,233.30
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkDecimals(String decimals) {
String regex = "\\-?[1-9]\\d+(\\.\\d+)?";
return Pattern.matches(regex,decimals);
}
/**
* 验证空白字符
* @param blankSpace 空白字符,包括:空格、\t、\n、\r、\f、\x0B
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkBlankSpace(String blankSpace) {
String regex = "\\s+";
return Pattern.matches(regex,blankSpace);
}
/**
* 验证中文
* @param chinese 中文字符
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkChinese(String chinese) {
String regex = "^[\u4E00-\u9FA5]+$";
return Pattern.matches(regex,chinese);
}
/**
* 验证日期(年月日)
* @param birthday 日期,格式:1992-09-03,或1992.09.03
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkBirthday(String birthday) {
String regex = "[1-9]{4}([-./])\\d{1,2}\\1\\d{1,2}";
return Pattern.matches(regex,birthday);
}
/**
* 验证URL地址
* @param url 格式:http://blog.csdn.net:80/xyang81/article/details/7705960? 或 http://www.csdn.net:80
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkURL(String url) {
String regex = "(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?";
return Pattern.matches(regex, url);
}
/**
* <pre>
* 获取网址 URL 的一级域名
* http://www.zuidaima.com/share/1550463379442688.htm ->> zuidaima.com
* </pre>
*
* @param url
* @return
*/
public static String getDomain(String url) {
Pattern p = Pattern.compile("(?<=http://|\\.)[^.]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE);
// 获取完整的域名
// Pattern p=Pattern.compile("[^//]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE);
Matcher matcher = p.matcher(url);
matcher.find();
return matcher.group();
}
/**
* 匹配中国邮政编码
* @param postcode 邮政编码
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkPostcode(String postcode) {
String regex = "[1-9]\\d{5}";
return Pattern.matches(regex, postcode);
}
/**
* 匹配IP地址(简单匹配,格式,如:192.168.1.1,127.0.0.1,没有匹配IP段的大小)
* @param ipAddress IPv4标准地址
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkIpAddress(String ipAddress) {
String regex = "[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))";
return Pattern.matches(regex, ipAddress);
}
}
</pre><br>
<br>
<p></p>
<br>
原文:<a target="_blank" href="http://www.zuidaima.com/share/1550463379442688.htm" class="title" style="color:rgb(0,137,200); text-decoration:none; font-size:14px; font-weight:bold">Java常用正则表达式验证工具类RegexUtils.java</a></p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
源代码下载地址:<a target="_blank" href="http://www.zuidaima.com/share/1550463379442688.htm" style="color:rgb(51,102,153); text-decoration:none">http://www.zuidaima.com/share/1550463379442688.htm</a></p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
<a href="http://lib.csdn.net/base/javase" class="replace_word" title="Java SE知识库" target="_blank" style="color:#df3434; font-weight:bold;">Java</a> 表单注册常用正则表达式验证工具类,常用正则表达式大集合。</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
1. 电话号码</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
2. 邮编</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
3. QQ</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
4. E-mail</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
5. 手机号码</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
6. URL</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
7. 是否为数字</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
8. 是否为中文</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
9. 身份证</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
10. 域名</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
11. IP 。。。。</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
常用验证应有尽有! 这的确是您从事 web 开发,服务器端表单验证之良品!你,值得拥有 ^_^</p>
<p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-size:13px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; line-height:20px">
</p>
<div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><b>[java]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard"
title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 557px; top: 1005px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_1" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf"
loop="false" menu="false" quality="best" bgcolor="#ffffff" name="ZeroClipboardMovie_1" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=18&height=18"
wmode="transparent" align="middle" height="18" width="18"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?"
onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-j"><li class="alt"><span><span class="comment">/*</span> </span></li><li class=""><span><span class="comment"> * Copyright 2012-2013 The Haohui Network Corporation</span> </span></li><li
class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span><span class="keyword">package</span><span> com.haohui.common.utils; </span></span></li><li class="alt"><span> </span></li><li
class=""><span><span class="keyword">import</span><span> java.util.regex.Matcher; </span></span></li><li class="alt"><span><span class="keyword">import</span><span> java.util.regex.Pattern; </span></span></li><li class=""><span> </span></li><li
class="alt"><span><span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * @project baidamei</span> </span></li><li class="alt"><span><span class="comment"> * @author cevencheng <cevencheng@gmail.com> www.zuidaima.com</span> </span></li><li
class=""><span><span class="comment"> * @create 2012-11-15 下午4:54:42</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span><span class="keyword">public</span><span> </span><span
class="keyword">class</span><span> RegexUtils { </span></span></li><li class="alt"><span> </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span
class="comment"> * 验证Email</span> </span></li><li class=""><span><span class="comment"> * @param email email地址,格式:zhangsan@zuidaima.com,zhangsan@xxx.com.cn,xxx代表邮件服务商</span> </span></li><li
class="alt"><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class=""><span><span class="comment"> */</span><span> </span></span></li><li
class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkEmail(String email) { </span></span></li><li
class=""><span> String regex = <span class="string">"\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?"</span><span>; </span></span></li><li class="alt"><span> <span
class="keyword">return</span><span> Pattern.matches(regex, email); </span></span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li
class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 验证身份证号码</span> </span></li><li class=""><span><span class="comment"> * @param idCard 居民身份证号码15位或18位,最后一位可能是数字或字母</span> </span></li><li
class="alt"><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class=""><span><span class="comment"> */</span><span> </span></span></li><li
class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkIdCard(String idCard) { </span></span></li><li
class=""><span> String regex = <span class="string">"[1-9]\\d{13,16}[a-zA-Z0-9]{1}"</span><span>; </span></span></li><li class="alt"><span> <span
class="keyword">return</span><span> Pattern.matches(regex,idCard); </span></span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li
class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 验证手机号码(支持国际格式,+86135xxxx...(中国内地),+00852137xxxx...(中国香港))</span> </span></li><li
class=""><span><span class="comment"> * @param mobile 移动、联通、电信运营商的号码段</span> </span></li><li class="alt"><span><span class="comment"> *<p>移动的号段:134(0-8)、135、136、137、138、139、147(预计用于TD上网卡)</span> </span></li><li
class=""><span><span class="comment"> *、150、151、152、157(TD专用)、158、159、187(未启用)、188(TD专用)</p></span> </span></li><li class="alt"><span><span class="comment"> *<p>联通的号段:130、131、132、155、156(世界风专用)、185(未启用)、186(3g)</p></span> </span></li><li
class=""><span><span class="comment"> *<p>电信的号段:133、153、180(未启用)、189</p></span> </span></li><li class="alt"><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class=""><span><span class="comment"> */</span><span> </span></span></li><li class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkMobile(String mobile) { </span></span></li><li class=""><span> String regex = <span class="string">"(\\+\\d+)?1[3458]\\d{9}$"</span><span>; </span></span></li><li
class="alt"><span> <span class="keyword">return</span><span> Pattern.matches(regex,mobile); </span></span></li><li class=""><span> } </span></li><li
class="alt"><span> </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 验证固定电话号码</span> </span></li><li
class=""><span><span class="comment"> * @param phone 电话号码,格式:国家(地区)电话代码 + 区号(城市代码) + 电话号码,如:+8602085588447</span> </span></li><li class="alt"><span><span class="comment"> * <p><b>国家(地区) 代码 :</b>标识电话号码的国家(地区)的标准国家(地区)代码。它包含从 0 到 9 的一位或多位数字,</span> </span></li><li
class=""><span><span class="comment"> * 数字之后是空格分隔的国家(地区)代码。</p></span> </span></li><li class="alt"><span><span class="comment"> * <p><b>区号(城市代码):</b>这可能包含一个或多个从 0 到 9 的数字,地区或城市代码放在圆括号——</span> </span></li><li
class=""><span><span class="comment"> * 对不使用地区或城市代码的国家(地区),则省略该组件。</p></span> </span></li><li class="alt"><span><span class="comment"> * <p><b>电话号码:</b>这包含从 0 到 9 的一个或多个数字 </p></span> </span></li><li
class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li
class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkPhone(String phone) { </span></span></li><li
class="alt"><span> String regex = <span class="string">"(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$"</span><span>; </span></span></li><li class=""><span> <span
class="keyword">return</span><span> Pattern.matches(regex, phone); </span></span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li
class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * 验证整数(正整数和负整数)</span> </span></li><li class="alt"><span><span class="comment"> * @param digit 一位或多位0-9之间的整数</span> </span></li><li
class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li
class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkDigit(String digit) { </span></span></li><li
class="alt"><span> String regex = <span class="string">"\\-?[1-9]\\d+"</span><span>; </span></span></li><li class=""><span> <span
class="keyword">return</span><span> Pattern.matches(regex,digit); </span></span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li
class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * 验证整数和浮点数(正负整数和正负浮点数)</span> </span></li><li class="alt"><span><span class="comment"> * @param decimals 一位或多位0-9之间的浮点数,如:1.23,233.30</span> </span></li><li
class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li
class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkDecimals(String decimals) { </span></span></li><li
class="alt"><span> String regex = <span class="string">"\\-?[1-9]\\d+(\\.\\d+)?"</span><span>; </span></span></li><li class=""><span> <span
class="keyword">return</span><span> Pattern.matches(regex,decimals); </span></span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li
class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * 验证空白字符</span> </span></li><li class="alt"><span><span class="comment"> * @param blankSpace 空白字符,包括:空格、\t、\n、\r、\f、\x0B</span> </span></li><li
class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li
class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">boolean</span><span> checkBlankSpace(String blankSpace) { </span></span></li><li
class="alt"><span> String regex = <span class="string">"\\s+"</span><span>; </span></span></li><li class=""><span> <span class="keyword">return</span><span> Pattern.matches(regex,blankSpace); </span></span></li><li
class="alt"><span> } </span></li><li class=""><span> </span></li><li class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span
class="comment"> * 验证中文</span> </span></li><li class="alt"><span><span class="comment"> * @param chinese 中文字符</span> </span></li><li class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkChinese(String chinese) { </span></span></li><li class="alt"><span> String regex = <span class="string">"^[\u4E00-\u9FA5]+$"</span><span>; </span></span></li><li
class=""><span> <span class="keyword">return</span><span> Pattern.matches(regex,chinese); </span></span></li><li class="alt"><span> } </span></li><li
class=""><span> </span></li><li class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * 验证日期(年月日)</span> </span></li><li
class="alt"><span><span class="comment"> * @param birthday 日期,格式:1992-09-03,或1992.09.03</span> </span></li><li class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkBirthday(String birthday) { </span></span></li><li class="alt"><span> String regex = <span class="string">"[1-9]{4}([-./])\\d{1,2}\\1\\d{1,2}"</span><span>; </span></span></li><li
class=""><span> <span class="keyword">return</span><span> Pattern.matches(regex,birthday); </span></span></li><li class="alt"><span> } </span></li><li
class=""><span> </span></li><li class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * 验证URL地址</span> </span></li><li
class="alt"><span><span class="comment"> * @param url 格式:http://blog.csdn.net:80/xyang81/article/details/7705960? 或 http://www.csdn.net:80</span> </span></li><li class=""><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkURL(String url) { </span></span></li><li class="alt"><span> String regex = <span class="string">"(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?"</span><span>; </span></span></li><li
class=""><span> <span class="keyword">return</span><span> Pattern.matches(regex, url); </span></span></li><li class="alt"><span> } </span></li><li
class=""><span> </span></li><li class="alt"><span> <span class="comment">/**</span> </span></li><li class=""><span><span class="comment"> * <pre></span> </span></li><li
class="alt"><span><span class="comment"> * 获取网址 URL 的一级域名</span> </span></li><li class=""><span><span class="comment"> * http://www.zuidaima.com/share/1550463379442688.htm ->> zuidaima.com</span> </span></li><li
class="alt"><span><span class="comment"> * </pre></span> </span></li><li class=""><span><span class="comment"> * </span> </span></li><li class="alt"><span><span class="comment"> * @param url</span> </span></li><li
class=""><span><span class="comment"> * @return</span> </span></li><li class="alt"><span><span class="comment"> */</span><span> </span></span></li><li class=""><span> <span
class="keyword">public</span><span> </span><span class="keyword">static</span><span> String getDomain(String url) { </span></span></li><li class="alt"><span> Pattern p = Pattern.compile(<span
class="string">"(?<=http://|\\.)[^.]*?\\.(com|cn|net|org|biz|info|cc|tv)"</span><span>, Pattern.CASE_INSENSITIVE); </span></span></li><li class=""><span> <span class="comment">// 获取完整的域名</span><span> </span></span></li><li
class="alt"><span> <span class="comment">// Pattern p=Pattern.compile("[^//]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE);</span><span> </span></span></li><li class=""><span> Matcher matcher = p.matcher(url); </span></li><li
class="alt"><span> matcher.find(); </span></li><li class=""><span> <span class="keyword">return</span><span> matcher.group(); </span></span></li><li
class="alt"><span> } </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 匹配中国邮政编码</span> </span></li><li
class=""><span><span class="comment"> * @param postcode 邮政编码</span> </span></li><li class="alt"><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class=""><span><span class="comment"> */</span><span> </span></span></li><li class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkPostcode(String postcode) { </span></span></li><li class=""><span> String regex = <span class="string">"[1-9]\\d{5}"</span><span>; </span></span></li><li
class="alt"><span> <span class="keyword">return</span><span> Pattern.matches(regex, postcode); </span></span></li><li class=""><span> } </span></li><li
class="alt"><span> </span></li><li class=""><span> <span class="comment">/**</span> </span></li><li class="alt"><span><span class="comment"> * 匹配IP地址(简单匹配,格式,如:192.168.1.1,127.0.0.1,没有匹配IP段的大小)</span> </span></li><li
class=""><span><span class="comment"> * @param ipAddress IPv4标准地址</span> </span></li><li class="alt"><span><span class="comment"> * @return 验证成功返回true,验证失败返回false</span> </span></li><li
class=""><span><span class="comment"> */</span><span> </span></span></li><li class="alt"><span> <span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span
class="keyword">boolean</span><span> checkIpAddress(String ipAddress) { </span></span></li><li class=""><span> String regex = <span class="string">"[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))"</span><span>; </span></span></li><li
class="alt"><span> <span class="keyword">return</span><span> Pattern.matches(regex, ipAddress); </span></span></li><li class=""><span> } </span></li><li
class="alt"><span> </span></li><li class=""><span>} </span></li><li class="alt"><span> </span></li><li class=""><span> </span></li></ol><div
class="save_code tracking-ad" data-mod="popu_249" style="display: none;"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="java" style="display: none;">/*
* Copyright 2012-2013 The Haohui Network Corporation
*/
package com.haohui.common.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @project baidamei
* @author cevencheng <cevencheng@gmail.com> www.zuidaima.com
* @create 2012-11-15 下午4:54:42
*/
public class RegexUtils {
/**
* 验证Email
* @param email email地址,格式:zhangsan@zuidaima.com,zhangsan@xxx.com.cn,xxx代表邮件服务商
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkEmail(String email) {
String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";
return Pattern.matches(regex, email);
}
/**
* 验证身份证号码
* @param idCard 居民身份证号码15位或18位,最后一位可能是数字或字母
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkIdCard(String idCard) {
String regex = "[1-9]\\d{13,16}[a-zA-Z0-9]{1}";
return Pattern.matches(regex,idCard);
}
/**
* 验证手机号码(支持国际格式,+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 checkMobile(String mobile) {
String regex = "(\\+\\d+)?1[3458]\\d{9}$";
return Pattern.matches(regex,mobile);
}
/**
* 验证固定电话号码
* @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 checkPhone(String phone) {
String regex = "(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$";
return Pattern.matches(regex, phone);
}
/**
* 验证整数(正整数和负整数)
* @param digit 一位或多位0-9之间的整数
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkDigit(String digit) {
String regex = "\\-?[1-9]\\d+";
return Pattern.matches(regex,digit);
}
/**
* 验证整数和浮点数(正负整数和正负浮点数)
* @param decimals 一位或多位0-9之间的浮点数,如:1.23,233.30
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkDecimals(String decimals) {
String regex = "\\-?[1-9]\\d+(\\.\\d+)?";
return Pattern.matches(regex,decimals);
}
/**
* 验证空白字符
* @param blankSpace 空白字符,包括:空格、\t、\n、\r、\f、\x0B
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkBlankSpace(String blankSpace) {
String regex = "\\s+";
return Pattern.matches(regex,blankSpace);
}
/**
* 验证中文
* @param chinese 中文字符
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkChinese(String chinese) {
String regex = "^[\u4E00-\u9FA5]+$";
return Pattern.matches(regex,chinese);
}
/**
* 验证日期(年月日)
* @param birthday 日期,格式:1992-09-03,或1992.09.03
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkBirthday(String birthday) {
String regex = "[1-9]{4}([-./])\\d{1,2}\\1\\d{1,2}";
return Pattern.matches(regex,birthday);
}
/**
* 验证URL地址
* @param url 格式:http://blog.csdn.net:80/xyang81/article/details/7705960? 或 http://www.csdn.net:80
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkURL(String url) {
String regex = "(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?";
return Pattern.matches(regex, url);
}
/**
* <pre>
* 获取网址 URL 的一级域名
* http://www.zuidaima.com/share/1550463379442688.htm ->> zuidaima.com
* </pre>
*
* @param url
* @return
*/
public static String getDomain(String url) {
Pattern p = Pattern.compile("(?<=http://|\\.)[^.]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE);
// 获取完整的域名
// Pattern p=Pattern.compile("[^//]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE);
Matcher matcher = p.matcher(url);
matcher.find();
return matcher.group();
}
/**
* 匹配中国邮政编码
* @param postcode 邮政编码
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkPostcode(String postcode) {
String regex = "[1-9]\\d{5}";
return Pattern.matches(regex, postcode);
}
/**
* 匹配IP地址(简单匹配,格式,如:192.168.1.1,127.0.0.1,没有匹配IP段的大小)
* @param ipAddress IPv4标准地址
* @return 验证成功返回true,验证失败返回false
*/
public static boolean checkIpAddress(String ipAddress) {
String regex = "[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))";
return Pattern.matches(regex, ipAddress);
}
}
</pre><br>
<br>
<p></p>
<br>
相关文章推荐
- 正则表达式验证工具类RegexUtils.java
- Java常用正则表达式验证工具类RegexUtils.java
- Java常用正则表达式验证工具类RegexUtils.java
- 正则表达式验证工具类RegexUtils.java
- Java常用正则表达式验证工具类RegexUtils.java
- Java常用正则表达式验证工具类RegexUtils.java
- Java常用正则表达式验证工具类RegexUtils.java
- 验证工具类 - ValidateUtils.java
- Java身份证验证工具类
- Java regex 正则表达式
- Java 的 JSON 开源类库之JackSon工具类--JSONUtils
- 正则表达式验证工具类RegexUtils.java
- Java正则表达式工具类实例
- Java 验证表单工具类,史上最全
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- java语言 ant.jar zip打包 utils工具类 通用性强
- Java表单验证工具类
- java 验证表单工具类,史上最全
- ADF工具类:TaskFlowUtils.java 源代码
- [Java] 字符串验证--java.util.regex.Pattern