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();

}


}