验证密码不包含名称中的3个以上连续字符

Viv*_*vek 3 java regex passwords validation

我需要在Java中进行密码验证后执行此操作

  • 长度必须至少为8个字符
  • 必须至少包含1个数字
  • 必须包含至少1个大写字母
  • 必须至少包含1个小写字母
  • 不能包含您的全名或用户名中的3个或更多连续字符(例如,如果您的姓名Will不能使用密码Stiller458)

我有前4分,我怎么做最后一分?

目前我有:

String pattern = "^(?=.*[^a-zA-Z])(?=.*[a-z])(?=.*[A-Z])\\S{8,}$";
boolean passwordValidation = originalPassword.matches(pattern);
Run Code Online (Sandbox Code Playgroud)

Ani*_*dha 7

对于你的1,2,3,4案件

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d]{8,}$
Run Code Online (Sandbox Code Playgroud)

对于你的第5个案例

public boolean isValid(final String userName,final String password)
{
    for(int i=0;(i+2)<userName.length();i++)
          if(password.indexof(userName.substring(i,i+2))!=-1)
                return false;
    return true;
}
Run Code Online (Sandbox Code Playgroud)