[英]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!") }
这是一个简单的方法(可能不是最好的):
username
中连续字符的所有组合,这些字符不应在password
找到。 这取决于您的应用程序在匹配时认为无效的连续字符数。 username
和password
都转换为相同的大小写。 $("#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.