密码验证无法正常工作

时间:2020-07-08 08:12:56

标签: java android

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

问题1:当输入的密码类型为“ 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();

}

不知道我要去哪里错了!

1 个答案:

答案 0 :(得分:1)

看看Regex101

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

此外,在右下角还引用了Regex模式-您甚至可以实时测试正则表达式并导出工作代码。