需求如下:
1.用户名长度:3-20;密码长度:10-20
2.密码不能包含用户名、空格,不能有连续且重复的字符如11、aa
3.不区分大小写检查禁止字符串
4.密码复杂度:四选三(即大写、小写字母、数字、符号至少包含三种)
2.关于不能有连续且重复的字符,这样写不对
在Java中,String.matches() 方法是用于判断整个字符串是否完全匹配正则表达式所描述的模式。因此,如果使用 password.matches("(.)\\\\1+"),它会尝试匹配整个密码字符串是否仅由连续且重复的字符组成。所以这里需要用Matcher类中的find()方法查找匹配项。
完整代码如下: