Моя задача заключается в том что бы как-то проверять пароль на сложность (ну там "Простой", " Средний"...).
В зависимости от того сколько букв, есть ли заглавные буквы, цифры, спецсимволы...
Нашел в нете вот такой пример:
const getPasswordComplexity = (pass) => {
const password = pass;
const smallLetters = 'qwertyuiopasdfghjklzxcvbnm';
const bigLetters = 'QWERTYUIOPLKJHGFDSAZXCVBNM';
const digits = '0123456789';
const specials = '!@#$%^&*()_-+=|/.,:;[]{}';
let isS = false;
let isB = false;
let isD = false;
let isSp = false;
for (let i = 0; i < password.length; i + 1) {
if (!isS && smallLetters.indexOf(password[i]) !== -1) isS = true;
else if (!isB && bigLetters.indexOf(password[i]) !== -1) isB = true;
else if (!isD && digits.indexOf(password[i]) !== -1) isD = true;
else if (!isSp && specials.indexOf(password[i]) !== -1) isSp = true;
}
let count = 0;
let text = '';
if (isS) count += 1;
if (isB) count += 1;
if (isD) count += 1;
if (isSp) count += 1;
if (password.length < 6 && count < 3) text = 'Простой';
else if (password.length < 6 && count >= 3) text = 'Средний';
else if (password.length >= 8 && count < 3) text = 'Средний';
else if (password.length >= 8 && count >= 3) text = 'Сложный';
else if (password.length >= 6 && count === 1) text = 'Простой';
else if (password.length >= 6 && count > 1 && count < 4) text = 'Средний';
else if (password.length >= 6 && count === 4) text = 'Сложный';
return pass;
}
};
Если вкратце, то есть функция, которая принимает строку, а дальше через цикл проверяет на соответствие сложности пароля.
Но если запустить код, то страница крашнется, codesandbox на счет этого говорит, что циклов слишком много, а если в браузере просто открывать то он не запускается просто виснет.