我正在使用此代码来验证用户是否输入了所有字符。这个论坛提供了几种解决方案,但是找不到我的问题的答案。
问题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();
}
不知道我要去哪里错了!