Java 密码复杂度校验正则表达式

1,869 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

  • 密码必须包含字母、数字和特殊符号且长度是6-32位:
^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[`~!@#$%^&*()-=_+;':",./<>?])(?=\S+$).{6,32}$
  • 密码是8-16位字母和数字的组合
^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$
  • 密码必须包含大写、小写、数字和特殊字符,且长度是6位以上
- ^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[`~!@#$%^&*()-=_+;':",./<>?])(?=\S+$).{6,}$
  • 使用
public class PwdCheckUtil {

    /**
     * 密码必须包含大写、小写、数字和特殊字符,且长度是6位以上
     */
    private static final String PWD_REGEX = "^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[`~!@#$%^&*()-=_+;':\",./<>?])(?=\\S+$).{6,}$";

    /**
     * 密码复杂度校验,判断有效性
     * @param password 密码信息
     * @return 校验密码是否合规有效
     */
    public static boolean isValidPassword(String password) {
        if (StringUtils.isBlank(password)) {
            return false;
        }
        return password.matches(PWD_REGEX);
    }
}