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