首页 > 解决方案 > 密码验证无法正常工作

问题描述

我正在使用此代码来验证用户是否输入了所有字符。该论坛提供了几种解决方案,但无法找到我的问题的答案。

问题一:当输入的密码为“aaBB11@@”这种类型时,验证并返回ok,而“11aaBB@@”则报错。使用不同的模式进行测试,但无法找到正确的字符串。

问题2:我们可以有一个布尔值(真/假)作为返回值。我猜 matcher.matches() 是布尔值,但我不确定。

    public boolean isValidPassword(final String password) {

    Pattern pattern;
    Matcher matcher;

    final String PASSWORD_PATTERN = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{6,}$";

    pattern = Pattern.compile(PASSWORD_PATTERN);
    matcher = pattern.matcher(password);

    return matcher.matches();

}

无法弄清楚我要去哪里错了!

标签: javaandroid

解决方案


看看Regex101

右上角,它将正则表达式的每个部分分解为步骤。

同样在右下角有对正则表达式模式的引用——您甚至可以实时测试您的正则表达式并导出工作代码。


推荐阅读