Saltar al contenido

Validación de contraseña de expresión regular de Javascript con caracteres especiales

Solución:

Utilice afirmaciones anticipadas positivas:

var regularExpression = /^(?=.*[0-9])(?=.*[[email protected]#$%^&*])[[email protected]#$%^&*]{6,16}$/;

Sin ella, su expresión regular actual solo coincide con que tiene de 6 a 16 caracteres válidos, no validar que tiene al menos un número, y al menos un personaje especial. Para eso es la búsqueda anticipada de arriba.

  • (?=.*[0-9]) – Afirmar que una cadena tiene al menos un número;
  • (?=.*[[email protected]#$%^&*]) – Afirmar que una cadena tiene al menos un carácter especial.

function validatePassword() {
    var p = document.getElementById('newPassword').value,
        errors = [];
    if (p.length < 8) {
        errors.push("Your password must be at least 8 characters"); 
    }
    if (p.search(/[a-z]/i) < 0) {
        errors.push("Your password must contain at least one letter.");
    }
    if (p.search(/[0-9]/) < 0) {
        errors.push("Your password must contain at least one digit."); 
    }
    if (errors.length > 0) {
        alert(errors.join("n"));
        return false;
    }
    return true;
}

Hay un cierto problema en la respuesta a continuación, ya que no se verifica la cadena completa debido a la ausencia de [ ] mientras revisa los caracteres y números, esta es la versión correcta

Utilizo el siguiente script para una contraseña mínima de 8 letras, con al menos un símbolo, letras mayúsculas y minúsculas y un número

function checkPassword(str)
{
    var re = /^(?=.*d)(?=.*[[email protected]#$%^&*])(?=.*[a-z])(?=.*[A-Z]).{8,}$/;
    return re.test(str);
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *