繁体   English   中英

username不是密码的一部分,反之亦然javascript或jquery

[英]username is not a part of password and vice versa javascript or jquery

密码不应包含超过两个连续字符的用户名或用户全名的部分

如果用户名= 1Abcd234密码= aBc15,那么它应该返回错误,如密码不能包含用户名的任何部分。

因为密码和用户名都有“abc1”。

我想你可以使用这样的东西:

 function FindIntersectionFromStart(a,b){ for(var i=a.length;i>0;i--){ d = a.substring(0,i); j = b.indexOf(d); if (j>=0){ return ({position:j,length:i}); } } return null; } function FindIntersection(a,b){ var bestResult = null; for(var i=0;i<a.length-1;i++){ var result = FindIntersectionFromStart(a.substring(i),b); if (result){ if (!bestResult){ bestResult = result; } else { if (result.length>bestResult.length){ bestResult = result; } } } if(bestResult && bestResult.length>=a.length-i) break; } return bestResult; } var username = "myUsername"; var password = "myuse"; result = FindIntersection(username.toLowerCase(), password.toLowerCase()); if(result.length > 2){ console.log("Invalid Password!"); } else { console.log("Valid Password!") } 

这是一个简单的方法(可能不是最好的):

  1. 首先获取username中连续字符的所有组合,这些字符不应在password找到。 这取决于您的应用程序在匹配时认为无效的连续字符数。
  2. 现在,运行一个简单的循环,并使用String.indexOf方法检查是否存在任何无效组合。
  3. 为了简单起见,请确保将usernamepassword都转换为相同的大小写。

 $("#check").on("click", checkValidity ); function checkValidity(){ var numConsecutiveChars = 2; var username = $("#username").val().trim().toLowerCase(); var password = $("#password").val().trim().toLowerCase(); // first find all combinations that should not be found in password var invalidCombinations = []; for( var i = 0; i < username.length - numConsecutiveChars; i++ ){ var curCombination = username[i] + username[i+1]; invalidCombinations.push( curCombination ); }//for // now check all invalidCombinations var invalid = false; for( var i = 0; i < invalidCombinations.length; i++ ){ var curCombination = invalidCombinations[i]; if( password.indexOf( curCombination ) !== -1 ){ invalid = true; break; } }//for() if( invalid ){ alert("Invalid password"); }else{ alert("Valid password"); } }//checkValidity() 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="username" value="user" /> <input type="text" id="password" value="pass" /> <button id="check">Check validity</button> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM