All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gitee.apanlh.util.valid.RegexUtils Maven / Gradle / Ivy

There is a newer version: 2.0.0.2
Show newest version
package com.gitee.apanlh.util.valid;

import com.gitee.apanlh.util.net.addr.IpUtils;

import java.util.regex.Pattern;

/**	
 * 	正则表达式验证工具类
 * 
 * 	@author Pan
 */
public class RegexUtils {
	
	/** 手机正则表达式  
验证手机号码包含 13 14 15 16 17 18 19*/ //private static final Pattern P_PHONE_REG = Pattern.compile("^(0|86|17951)*(13[0-9]|14[57]|15[0-9]|16[0-9]|17[0-8]|18[0-9]|19[0-9])[0-9]{8}$"); private static final Pattern P_PHONE_REG = Pattern.compile("^(13[0-9]|14[57]|15[0-9]|16[0-9]|17[0-8]|18[0-9]|19[0-9])[0-9]{8}$"); /** 验证是否为 数字 */ private static final Pattern P_NUMBER_REG = Pattern.compile("[0-9]*"); /** 验证是否为 英文字母 */ private static final Pattern P_ENGLISH_REG = Pattern.compile("^[A-Za-z]+$"); /** 验证 包含字母-数字 */ private static final Pattern P_NUM_ENGLISH_REG = Pattern.compile("^[A-Za-z0-9]+$"); /** 验证包含 字母-数字-下划线 加 横杆(-) */ private static final Pattern P_NUM_ENGLISH_LINE_REG_TAG = Pattern.compile("^[A-Za-z0-9_-]+$"); /** 验证包含 字母-数字-下划线 */ private static final Pattern P_NUM_ENGLISH_LINE_REG = Pattern.compile("^[A-Za-z0-9_]+$"); /** 验证是否为 邮政编码 */ private static final Pattern P_POSTAL_CODE_REG = Pattern.compile("[1-9]\\d{5}(?!\\d)"); /** 验证是否为 URL地址 */ private static final Pattern P_URL_REG = Pattern.compile( "^((https|http|ftp|rtsp|mms)?://)" .concat("(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?") .concat("(([0-9]{1,3}\\.) {3}[0-9]{1,3}|") .concat("([0-9a-z_!~*'()-]+\\.)*") .concat("([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\.[a-z]{2,6})") .concat("(:[0-9]{1,4})?((/?)|") .concat("(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$") ); /** 验证 浮点型 */ private static final Pattern P_FLOAT_REG = Pattern.compile("^\\d+(\\.\\d+)?$"); /** 验证是否为中文 */ private static final Pattern P_CHINESE_REG = Pattern.compile("^[\\u4E00-\\u9FA5]+$"); /** 验证图片后缀
bmp、jpg、png、gif、JPEG、jpeg、 */ private static final Pattern P_IMAGE_REG = Pattern.compile(".+(.JPEG|.jpeg|.JPG|.jpg|.bmp|.BMP|.gif|.GIF|.png|.PNG)$"); /** 验证十六进制字符串 */ private static final Pattern P_HEX_REG = Pattern.compile("^[a-f0-9A-F]+$"); // /** 验证是否为正确的邮箱 */ //private static final Pattern P_EMAIL_REG = Pattern.compile("^([a-zA-Z]|[0-9])(\\w|\\-)+@[a-zA-Z0-9]+\\.([a-zA-Z]{2,4})$"); /** 格式为[用户名@域名.顶级域名]的邮件地址,其中用户名部分至少包含3个字符,最多包含18个字符,域名和顶级域名部分可以包含字母、数字、下划线、连字符和句点 */ private static final Pattern P_EMAIL_REG = Pattern.compile("^(\\w+([-.][A-Za-z0-9]+)*){3,18}@\\w+([-.][A-Za-z0-9]+)*\\.\\w+([-.][A-Za-z0-9]+)*$"); /** 强密码校验
必须包含 大写、小写、数字、特殊字符 8-20位组成的密码 */ private static final Pattern P_FIRST_STRONG_PASSWORD = Pattern.compile("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*().,]).{8,20}$"); /** 强密码校验
必须包含 大小写字母、数字、特殊字符 8-20位组成的密码 */ private static final Pattern P_SECOND_STRONG_PASSWORD = Pattern.compile("^(?=.*\\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&*().,]).{8,20}$"); /** * 构造函数 * * @author Pan */ private RegexUtils() { // 不允许外部实例 super(); } /** * 判断是否属于十六进制字符串 * * @author Pan * @param content 内容 * @return boolean */ public static boolean isHex(String content) { if (ValidParam.isEmpty(content)) { return false; } return P_HEX_REG.matcher(content).matches(); } /** * 功能:验证手机号码为 13 14 15 16 17 18 19 *
判断手机号码是否正确 * * @author Pan * @param phone 手机号 * @return boolean true为正确匹配 | false不正确匹配 */ public static boolean isPhone(String phone) { if (ValidParam.isEmpty(phone)) { return false; } int minLength = 11; if (phone.length() != minLength) { return false; } return P_PHONE_REG.matcher(phone).matches(); } /** * 功能:判断字符串是否为数字 * * @author Pan * @param str 需要判断的字符 * @return boolean true为正确匹配 | false不正确匹配 */ public static boolean isNumeric(String str) { if (ValidParam.isEmpty(str)) { return false; } return P_NUMBER_REG.matcher(str).matches(); } /** * 功能:验证是否为浮点型 * * @author Pan * @param floatVal 浮点字符串 * @return boolean */ public static boolean isFloat(String floatVal) { if (ValidParam.isEmpty(floatVal)) { return false; } return P_FLOAT_REG.matcher(floatVal).matches(); } /** * 功能:验证 英文字母 * * @author Pan * @param str 字符串 * @return boolean */ public static boolean isEnglish(String str) { if (ValidParam.isEmpty(str)) { return false; } return P_ENGLISH_REG.matcher(str).matches(); } /** * 功能:验证是否包含了英文-数字 * * @author Pan * @param str 字符串 * @return boolean */ public static boolean isNumEnglish(String str) { if (ValidParam.isEmpty(str)) { return false; } return P_NUM_ENGLISH_REG.matcher(str).matches(); } /** * 功能:验证包含 英文字母-数字-下划线 * * @author Pan * @param str 字符串 * @return boolean */ public static boolean isNumEnglishLine(String str) { if (ValidParam.isEmpty(str)) { return false; } return P_NUM_ENGLISH_LINE_REG.matcher(str).matches(); } /** * 功能:验证包含 英文字母-数字-下划线 横杆- * * @author Pan * @param str 字符串 * @return boolean */ public static boolean isNumEnglishLineTag(String str) { if (ValidParam.isEmpty(str)) { return false; } return P_NUM_ENGLISH_LINE_REG_TAG.matcher(str).matches(); } /** * 功能:验证IPV4地址 * * @author Pan * @param ipAddress ip地址 * @return boolean */ public static boolean isIpV4(String ipAddress) { if (ValidParam.isEmpty(ipAddress)) { return false; } return IpUtils.isIpV4(ipAddress); } /** * 功能:验证是否是邮政编码 * * @author Pan * @param code 邮政编码 * @return boolean */ public static boolean isPostalCode(Long code) { if (ValidParam.isNull(code)) { return false; } return P_POSTAL_CODE_REG.matcher(String.valueOf(code)).matches(); } /** * 功能:验证是否是邮政编码 * * @author Pan * @param code 邮政编码 * @return boolean */ public static boolean isPostalCode(Integer code) { if (ValidParam.isNull(code)) { return false; } return P_POSTAL_CODE_REG.matcher(String.valueOf(code)).matches(); } /** * 功能:验证是否是邮政编码 * * @author Pan * @param code 邮政编码 * @return boolean */ public static boolean isPostalCode(String code) { if (ValidParam.isEmpty(code)) { return false; } return P_POSTAL_CODE_REG.matcher(String.valueOf(code)).matches(); } /** * 功能:验证15或18位身份证号 * * @author Pan * @param idcard 身份证号 * @return boolean */ public static boolean isIdcard(String idcard) { return IdcardUtils.valid(idcard); } /** * 功能:验证15位身份证 * * @author Pan * @param idcard 身份证号 * @return boolean */ public static boolean isIdcard15(String idcard) { return IdcardUtils.valid15(idcard); } /** * 功能:验证18位身份证 * * @author Pan * @param idcard 身份证号 * @return boolean */ public static boolean isIdcard18(String idcard) { return IdcardUtils.valid18(idcard); } /** * 功能:验证是否为正常的url * * @author Pan * @param url url * @return boolean */ public static boolean isUrl(String url) { if (ValidParam.isEmpty(url)) { return false; } return P_URL_REG.matcher(url).matches(); } /** * 功能:验证字符串是否包含中文 * * @author Pan * @param str 字符串 * @return boolean */ public static boolean isChinese(String str) { if (ValidParam.isEmpty(str)) { return false; } return P_CHINESE_REG.matcher(str).matches(); } /** * 功能: 验证图片后缀名是否正确 *
JPEG|.jpeg|.JPG|.jpg|.bmp|.BMP|.gif|.GIF|.png|.PNG * * @author Pan * @param name 后缀名称 * @return boolean */ public static boolean isImage(String name) { if (ValidParam.isEmpty(name)) { return false; } return P_IMAGE_REG.matcher(name).matches(); } /** * 验证是否为正确的邮箱 * * @author Pan * @param eMail 邮箱 * @return boolean */ public static boolean isEmail(String eMail) { if (ValidParam.isEmpty(eMail)) { return false; } return P_EMAIL_REG.matcher(eMail).matches(); } /** * 必须包含:大写、小写、数字、特殊字符 8-20位组成的密码 * * @author Pan * @param pwd 密码 * @return boolean */ public static boolean isStrongPwd(String pwd) { if (ValidParam.isEmpty(pwd)) { return false; } return P_FIRST_STRONG_PASSWORD.matcher(pwd).matches(); } /** * 必须包含:大写或小写字母、数字、特殊字符 8-20位组成的密码 * * @author Pan * @param pwd 密码 * @return boolean */ public static boolean isSecondStrongPwd(String pwd) { if (ValidParam.isEmpty(pwd)) { return false; } return P_SECOND_STRONG_PASSWORD.matcher(pwd).matches(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy