java - 密码验证无法正常工作
问题描述
我正在使用此代码来验证用户是否输入了所有字符。该论坛提供了几种解决方案,但无法找到我的问题的答案。
问题一:当输入的密码为“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();
}
无法弄清楚我要去哪里错了!
解决方案
推荐阅读
- python - 在仍然能够验证参数的同时更改全局对象
- mysql - 如果值正确与否,则分配 0 或 1 的列
- javascript - 处理多选的通用 handleInputChange
- websocket - 将 Dash 与 websocket 一起使用
- html - 语义 UI:切换复选框在页面上移动,像固定定位一样浮动
- javascript - 单选按钮的 Xpath 不起作用:Xpath 不可点击?
- python-3.x - 追加并读取文件的最后一行
- excel - 在工作簿冻结时添加加载程序
- android - 我应该使用意图还是应用链接来连接 Android 中的两个原生应用?
- kotlin - 以编程方式决定将哪些参数传递给具有默认参数的函数?