let regex = /^(?=.*[@!#$%^&*()/\\])(?=.*[0-9])(?=.*[A-Za-z])[@!#$%^&*()/\\a-zA-Z0-9]{8,20}$/;
function validar(string, especiais){
if (string.length < 8 || string.length > 20){
return false;
}
let especial = 0, letra = 0, numero = 0;
for (let i = 0; i < string.length; i++) {
const char = string[i];
if ( ('a' <= char && char <= 'z') || ('A' <= char && char <= 'Z') ) {
letra++;
} else if ('0' <= char && char <= '9') {
numero++;
} else if (especiais.has(char)) {
especial++;
} else {
return false;
}
}
return especial > 0 && letra > 0 && numero > 0;
}
const especiais = new Set(['@', '!', '#', '$', '%', '^', '&', '*', '(', ')', '/', '\\']);