有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我需要在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);

共 (2) 个答案

  1. # 1 楼答案

    最后一点不是你用正则表达式做的事情。循环遍历名称,并检查密码

    正则表达式擅长于模式,而不是解析。无论如何,您必须使用循环来遍历名称

  2. # 2 楼答案

    对于您的1,2,3,4案例

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

    你的第五个案子

    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;
    }