
org.hothub.module.common.utils.ValidateUtils Maven / Gradle / Ivy
The newest version!
package org.hothub.module.common.utils;
import java.util.regex.Pattern;
/**
* 常用规则验证
*/
public class ValidateUtils {
/**
* 正则表达式:验证用户帐号
*/
private static final String REGEX_USERACCOUNT = "^[a-zA-Z]\\w{5,17}$";
/**
* 正则表达式:验证密码
* 复杂度: 简单
* 规则: 大小写字母或数字均可
*/
private static final String REGEX_PASSWORD_SIMPLE = "^[a-zA-Z0-9]{8,30}$";
/**
* 正则表达式:验证密码
* 复杂度: 一般
*
* 密码匹配规则:
* 1、必须包含至少一个英文字符(不区分大小写)和至少一个数字
* 2、可以使用0个或多个特殊英文字符。允许的特殊字符: !@#$%^&*()_+,.?-
* 3、不允许有空格和中文
* 4、总长度 >= 8 且 <= 30
*/
private static final String REGEX_PASSWORD_GENERAL = "^(?![a-zA-Z]+$)(?!\\d+$)(?![``~~!!@##$¥%%^…&&()()\\--_—==++\\[\\][]|·::;;\"“\\\\、'‘,,<>〈〉??//**.。{}{}]+$)(?![a-zA-Z``~~!!@##$¥%%^…&&()()\\--_—==++\\[\\][]|·::;;\"“\\\\、'‘,,<>〈〉??//**.。{}{}]+$)(?![\\d``~~!!@##$¥%%^…&&()()\\--_—==++\\[\\][]|·::;;\"“\\\\、'‘,,<>〈〉??//**.。{}{}]+$)[a-zA-Z\\d``~~!!@##$¥%%^…&&()()\\--_—==++\\[\\][]|·::;;\"“\\\\、'‘,,<>〈〉??//**.。{}{}]{8,30}$";
/**
* 正则表达式:验证密码
* 复杂度: 复杂
* 规则: 待完善
*/
private static final String REGEX_PASSWORD_COMPLEX = "^(?![a-zA-z]+$)(?!\\d+$)(?![!@#$%^&*_,.?-]+$)(?![a-zA-z\\d]+$)(?![a-zA-z!@#$%^&*_,.?-]+$)(?![\\d!@#$%^&*_,.?-]+$)[a-zA-Z\\d!@#$%^&*_,.?-]+$";
/**
* 正则表达式:验证密码
* 复杂度: 极复杂
* 规则: 包含字母 + 数字 + 特殊字符,字母区分大小写
*/
private static final String REGEX_PASSWORD_ULTIMA = "^(?![a-zA-z]+$)(?!\\d+$)(?![!@#$%^&*_,.?-]+$)(?![a-zA-z\\d]+$)(?![a-zA-z!@#$%^&*_,.?-]+$)(?![\\d!@#$%^&*_,.?-]+$)[a-zA-Z\\d!@#$%^&*_,.?-]+$";
/**
* 正则表达式:验证手机号
*/
private static final String REGEX_MOBILE = "^((13[0-9])|(14[0-9])|(15[0-9])|(16[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\\d{8}$";
/**
*
* 正则表达式:验证邮箱
*
*/
private static final String REGEX_EMAIL = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
/**
* 校验用户名
*
* @param userAccount 用户账号
* @return 校验通过返回true,否则返回false
*/
public static boolean isUserAccount(String userAccount) {
return Pattern.matches(REGEX_USERACCOUNT, userAccount);
}
/**
* 校验密码复杂度。
* 复杂度: 简单
*
* @param password 密码
* @return 校验通过返回true,否则返回false
*/
public static boolean isPasswordSimple(String password) {
return Pattern.matches(REGEX_PASSWORD_SIMPLE, password);
}
/**
* 校验密码复杂度。
* 复杂度: 一般
*
* @param password 密码
* @return 校验通过返回true,否则返回false
*/
public static boolean isPasswordGeneral(String password) {
return Pattern.matches(REGEX_PASSWORD_GENERAL, password);
}
/**
* 校验密码复杂度。
* 复杂度: 复杂
*
* @param password 密码
* @return 校验通过返回true,否则返回false
*/
public static boolean isPasswordComplex(String password) {
return Pattern.matches(REGEX_PASSWORD_COMPLEX, password);
}
/**
* 校验密码
* 复杂度: 极复杂
*
* @param password 密码
* @return 校验通过返回true,否则返回false
*/
public static boolean isPasswordUltima(String password) {
return Pattern.matches(REGEX_PASSWORD_ULTIMA, password);
}
/**
* 校验手机号
*
* @param mobile 手机号
* @return 校验通过返回true,否则返回false
*/
public static boolean isMobile(String mobile) {
return !StringUtils.isEmpty(mobile) && Pattern.matches(REGEX_MOBILE, mobile);
}
/**
* 校验邮箱
*
* @param email 邮箱
* @return 校验通过返回true,否则返回false
*/
public static boolean isEmail(String email) {
return !StringUtils.isEmpty(email) && Pattern.matches(REGEX_EMAIL, email);
}
/**
* 校验身份证号
*
* @param idCard 身份证号
* @return 校验通过返回true,否则返回false
*/
public static boolean isIdCard(String idCard) {
return new IdCardRule().verify(idCard);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy