需要检查密码是否包含JAVA / ATG中UserName的相同字符序列

时间:2015-02-27 09:32:29

标签: java atg atg-dynamo

我正在研究一个ATG项目。 我的要求是“密码不应包含与UserName中相同的字符序列”。 例如。如果userName是abcdef@123.com。 那么pw不应该是def@123.com pw不应包含相同的SEQUENCE字符。 它可以包含userName中的字符。但是字符的排序/顺序不应该相同。

我该怎么检查?

谢谢, Treesa

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作来检查密码是否包含用户名的任何序列:

public Boolean containsSequences(String uname, String pwd){
  Boolean contains=false;
  int count=0;
  for (String seq: uname.split("/[\@\-\.\_]/g")){ //split the username following this regex.
     if(pwd.indexOf(seq)>0){
        count++;
     }
  }
  if(count>0){
     contains=true;
  }
  return contains;
}

此方法在输入中接受两个字符串(username和pwd),然后获取用户名的子序列并测试pwd是否包含其中一个,如果是,则返回pwd包含的true menas用户名序列。

或者你可以做得更好:

 public Boolean containsSequences(String uname, String pwd){
  Boolean contains=false;
  for (String seq: uname.split("/[\@\-\.\_]/g")){ 
     if(pwd.contains(seq)|| pwd.contains(seq.toUpperCase())|| pwd.contains(seq.toLowerCase())){
        contains=true;
        break;
     }
  }
  return contains;
}

答案 1 :(得分:-1)

使用passowrdString.contains(userNameString)