密碼不能包含用戶名或超過兩個連續的字符用戶名不是密碼的一部分,反之亦然JavaScript或jQuery的
如果用戶名= 1Abcd234 密碼= aBc15 那麼它應該返回用戶的全名的部分像密碼這樣的錯誤不能包含用戶名的任何部分。
因爲「abc1」存在於密碼和用戶名中。
密碼不能包含用戶名或超過兩個連續的字符用戶名不是密碼的一部分,反之亦然JavaScript或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!")
}
對不起,但如果我使用這個 var username =「myUsername」; var password =「myuse」; 它將返回有效的密碼。 –
@NishuKashyap發生這種情況是因爲案例不同。通過添加'.toLowerCase()'你的例子的作品。 –
對不起,但你沒有明白我的觀點。 如果myUsername和myuse都具有相同的字符串,即myuse,那麼如何返回有效的密碼。 –
這裏有一個簡單的方法(可能不是,雖然最好的):
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>
是的這段代碼也可以工作。非常感謝。 @mohit bhardwaj –
你嘗試過這麼遠嗎?請分享您的代碼。 –
你有什麼想要做到這一點,請注意,StackOverflow不是一個編碼服務 –
只需循環它並使用indexof – brk