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

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