Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 密码验证无法正常工作_Java_Android - Fatal编程技术网

Java 密码验证无法正常工作

Java 密码验证无法正常工作,java,android,Java,Android,我使用此代码验证用户是否输入了所有字符。本论坛提供了几种解决方案,但无法找到我问题的答案 问题1:当输入的密码类型为“aaBB11@@@”时,它将验证并返回ok,其中“11aaBB@@@”给出错误。使用不同的模式进行测试,但找不到正确的字符串 问题2:我们可以用布尔值(真/假)作为返回值吗。我猜matcher.matches()是布尔值,但我不确定 public boolean isValidPassword(final String password) { Pattern p

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

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

}
不知道我哪里出了问题

看一看

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


右下角还有对正则表达式模式的引用-您甚至可以测试您的正则表达式并导出工作代码。

尝试-->
PASSWORD_PATTERN=“((?=.*\\d)(?=.[a-z])(?=.*[a-z])(?=.[@#$%]){6,20}
然后
返回密码模式匹配(密码)
密码模式更改后,返回值始终为false。请尝试-->像这样定义模式-->
私有静态最终字符串密码模式=((?=.*\\d)(?=.[a-z])(?=.[a-z])(?=.[@#$%])。{6,20}外部有效密码谢谢您的建议。我能理解评估结果。