Нужно чтобы функция возвращала false если в password найдено одно из значений linesArray, чтобы цикл проверял каждое значение массива, но почему что не работает, не пойму почему.
var linesArray = ["abcd","efg", "hrh"];
var password = "213efg123"
var resultat = true;
var testValidity = function(){
for (i = 0;resultat = true; i++) {
let arr = linesArray[i];
let str = password;
let test = str.indexOf(arr.toString());
if (test > -1) {
resultat = false
}
return resultat;
}
};
Ещё один фидл
var LinesArray = ["abcd","efg", "hrh"],
password = "213efg123",
testValidity = function(){
var resultat = true;
for (var i = 0; i < LinesArray.length; i++) {
var reg = new RegExp(LinesArray[i]);
if(reg.test(password)){
resultat = false;
break;
}
}
return resultat;
};
console.log(testValidity());
Тут ошибка: var LinesArray["abcd","efg", "hrh"];, должно быть var LinesArray = ["abcd","efg", "hrh"];
И тут ошибка: let arr = linesArray[i] - вместо определенной ранее переменной "LinesArray" прописана неизвестная "linesArray". Javascript чувствителен к регистру.
У вас было три ошибки в коде, в первой строке
var LinesArray["abcd","efg", "hrh"];
не было знака равно.
А в функции вы использовали обращение к массиву linesArray[i], тогда как у вас переменная называлась LinesArray (с большой буквы).
А также у вас получается return вызывался при первой итерации цикла, в результате цикл прерывался и вы не доходили до следующих значений. Проще всего вынести return за пределы цикла for.
И, по-моему, лучше ограничить цикл for длинной массива linesArray.
var linesArray = ["abcd", "efg", "hrh"];
var password = "213efg123"
var resultat = true;
var testValidity = function() {
for (let i = 0; i < linesArray.length; i++) {
let arr = linesArray[i];
let str = password;
let test = str.indexOf(arr.toString());
if (test > -1) {
resultat = false
break;
}
}
return resultat; //перенос return
};
console.log(testValidity());
var linesArray = ["abcd", "efg", "hrh"];
var password = "213efg123"
var testValidity = function(pwd, lines) {
return !lines.some(line => pwd.indexOf(line) > -1);
}
console.log(testValidity(password, linesArray));
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости