Saltar al contenido

regex para permitir al menos un carácter especial, una mayúscula, una minúscula (en cualquier orden)

Solución:

Tu expresión regular

^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$

en realidad debería funcionar bien, pero puede mejorarlo mucho eliminando el primer .*:

^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$

coincidirá con cualquier cadena de al menos 8 caracteres que contenga al menos un carácter ASCII en minúscula y una mayúscula y también al menos un carácter del conjunto @#$%^&+= (en cualquier orden).

Aquí hay una función que puede utilizar.

function checkRegex(string) {
    var checkSpecial = /[*@!#%&()^~{}]+/.test(string),
        checkUpper = /[A-Z]+/.test(string),
        checkLower = /[a-z]+/.test(string),
        r = false;

        if (checkUpper && checkLower && checkSpecial) {
            r = true;
        }

        return r;

        }

y luego verifique si es verdadero o falso.

var thisVal = document.getElementById('password').value;
var regex = checkRegex(thisVal);

Si var regex es true entonces la condición cumplida.

Se puede hacer rápidamente con 3 expresiones regulares.

function check($string){
   return    preg_match("/[`!%$&^*()]+/", $string) 
          && preg_match("/[a-z]+/", $string) 
          && preg_match("/[A-Z]+/", $string) ;
}

No olvide modificar la lista de caracteres especiales. Porque no sé qué personajes crees que son especiales.

Creo que perder mucho tiempo en una expresión regular de una sola línea sin ser un experto no aumentará su productividad. Esta solución de 3 expresiones regulares funcionará bien. Ahorra tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

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