加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则工具类以及FinalClass

发布时间:2020-12-14 01:45:24 所属栏目:百科 来源:网络整理
导读:package com.jadyer.server.util;import java.util.regex.Pattern;/** * 正则工具类 * @see final class可以提高执行速度,原因如下 * @see 1)不涉及继承和覆盖 * @see 2)其地址引用和装载在编译时完成,而不是在运行期间由JVM进行复杂的装载,因而简单并有效 *
package com.jadyer.server.util;

import java.util.regex.Pattern;

/**
 * 正则工具类
 * @see final class可以提高执行速度,原因如下
 * @see 1)不涉及继承和覆盖
 * @see 2)其地址引用和装载在编译时完成,而不是在运行期间由JVM进行复杂的装载,因而简单并有效
 * @see 3)运行时不要求JVM执行因覆盖而产生的动态地址引用而花费时间和空间
 * @see 4)与继承链上的一般对象相比,垃圾回收器在收回final对象所占据的地址空间时也相对简单快捷
 * @version v1.0
 * @history v1.0-->新建此工具类
 * @create Dec 16,2013 1:04:09 PM
 * @author 玄玉<http://blog.csdn.net/jadyer>
 */
public final class RegexUtil {
	private RegexUtil(){}
	
	/**
	 * 验证Email
	 */
	public static boolean isEmail(String email){
		return Pattern.matches("w+@w+.[a-z]+(.[a-z]+)?",email);
	}
	
	
	/**
	 * 验证身份证号
	 * @see 身份证号码为15位或18位,且首位不能为0,尾位可以是字母或数字
	 */
	public static boolean isIdCard(String idCard){
		return Pattern.matches("[1-9]d{13,16}[a-zA-Z0-9]{1}",idCard);
	}
	
	
	/**
	 * 验证手机号码
	 * @see 移动的号段:134,135,136,137,138,139,147,150,151,152,157,158,159,182,187,188
	 * @see 联通的号段:130,131,132,145,155,156,185,186
	 * @see 电信的号段:133,153,180,189
	 * @param mobile 移动联通电信三大运营商的号码段,支持国际格式,如+86135xxxxxxxx(中国内地),+00852137xxxxxxxx(中国香港)
	 */
	public static boolean isMobile(String mobile){
		//return Pattern.matches("^(13[0,1,2]|145|15[5,6]|18[5,6])d{8}$",mobile);
		return Pattern.matches("(+d+)?1[3458]d{9}$",mobile);
	}
	
	
	/**
	 * 验证固定电话号码
	 * @see 国家(地区)代码:标识电话号码的国家(地区)的标准国家(地区)代码,它包含从0到9的一位或多位数字
	 * @see 区号(城市代码):这可能包含一个或多个从0到9的数字,地区或城市代码放在圆括号标明对不使用地区或城市代码的国家(地区)则省略该组件
	 * @see 电话号码:包含从0到9的七位或八位数字
	 * @param phone 座机号,格式为:国家(地区)代码+区号(城市代码)+电话号码,如:+8602085588447
	 */
	public static boolean isPhone(String phone){
		return Pattern.matches("(+d+)?(d{3,4}-?)?d{7,8}$",phone);
	}
	
	
	/**
	 * 验证中文
	 */
	public static boolean isChinese(String chinese){
		return Pattern.matches("^[u4E00-u9FA5]+$",chinese);
	}
	
	
	/**
	 * 验证中国邮政编码
	 */
	public static boolean isPostCode(String postCode){
		return Pattern.matches("[1-9]d{5}",postCode);
	}
	
	
	/**
	 * 验证IP地址
	 * @see 这里并未匹配IP段的大小
	 * @param ipAddress IPv4标准地址
	 */
	public static boolean isIPAddress(String ipAddress){
		return Pattern.matches("[1-9](d{1,2})?.(0|([1-9](d{1,2})?)).(0|([1-9](d{1,2})?))",ipAddress);
	}
	
	
	/**
	 * 验证URL地址
	 */
	public static boolean isURL(String url){
		return Pattern.matches("(https?://(w{3}.)?)?w+.w+(.[a-zA-Z]+)*(:d{1,5})?(/w*)*(??(.+=.*)?(&.+=.*)?)?",url);
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读