如何使用至少一个特殊字符,数字,大写和小写字母验证我的密码,但是用户输入以允许任意三个中的三个?

问题描述 投票:2回答:1

这是我的验证方法

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个上部......等

android
1个回答
1
投票

用这个:

"^(?=.*?[A-Za-z0-9])(?=.*?[A-Z#?!@$%^&*-0-9])(?=.*?[a-z#?!@$%^&*-0-9])(?=.*?[A-Za-z#?!@$%^&*-]).{8,20}$"
© www.soinside.com 2019 - 2024. All rights reserved.