public class PasswordValidator {
private Pattern pattern;
private Matcher matcher;
/*
(?=.*\d) #必须包含一个从0 - 9数字吗
(?=.*[a-z]) # 必须包含一个小写字母吗
(?=.*[A-Z]) # 必须包含一个大写字符
(?=.*[@#$%]) # 列表中必须包含一个特殊符号“@ # $ % "
. # 与先前的条件匹配任何检查
{6,20} # 长度至少6个字符,最多20
*
*/
private static final String PASSWORD_PATTERN=
"((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
/**
* 用正则表达式验证密码
* @param密码密码验证
* @return真正有效的密码,错误无效的密码
*/
public PasswordValidator(){
pattern = Pattern.compile(PASSWORD_PATTERN);
}
public boolean validate(final String password){
matcher = pattern.matcher(password);
return matcher.matches();
}
}