这是我的验证方法
public boolean isValidPassword(final String password) {
Pattern pattern;
Matcher matcher;
final String PASSWORD_PATTERN = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).{8,}$";
pattern = Pattern.compile(PASSWORD_PATTERN);
matcher = pattern.matcher(password);
return matcher.matches();
}
从上面的代码我需要输入至少1位数,1下限,1上限,1特殊。但我需要选择用户输入4个中的任何3个选项..即..... 1个数字,1个上部,1个下部(或)1个特殊,1个数字,1个上部......等
用这个:
"^(?=.*?[A-Za-z0-9])(?=.*?[A-Z#?!@$%^&*-0-9])(?=.*?[a-z#?!@$%^&*-0-9])(?=.*?[A-Za-z#?!@$%^&*-]).{8,20}$"