I tienen los siguientes criterios para la creación de una expresión regular para una contraseña que se ajusta a las siguientes reglas:expresión regular para hacer cumplir contraseñas complejas, a juego 3 de cada 4 reglas
- La contraseña debe ser de 8 caracteres de largo (esto puedo hacer :-)).
La contraseña debe entonces contener caracteres de al menos 3 de los siguientes 4 reglas:
- de caso superior
- Baja caso
- Números
- no alfanumérico
Puedo hacer que la expresión coincida con TODAS esas reglas con la siguiente expresión:
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.[\W]).{8,}$/
Pero estoy luchando con la forma de hacer esto de tal manera que sólo se necesita resolver cualquier 3 de las 4 reglas.
¿Alguien puede ayudarme con esto?
tengo que decir que este es uno de esos casos cuando pienso en su código, probablemente sería mucho más legible si tuviera 4 expresiones regulares diferentes en su lugar. Y luego quizás haya un recuento y para cada una de las expresiones regulares que coincida, incremente el conteo y luego al final solo verifique si el conteo es 3 o más. –
¿Qué lenguaje de programación estás usando? – kennytm