EXPRESIÓN REGULAR para validar contraseñas que no pueden contener ciertos caracteres.
Necesito verificar si una contraseña cumple con las siguientes reglas:
– Al menos 8 caracteres (longitud)
– Una letra mayúscula
– Una letra minúscula
– Un número
– Un carácter especial
– No puede contener ‘.’ o ‘_’ (parte complicada)
Por ejemplo:
– Bft$ns2E => debería cumplir con las reglas
– H2od%^.,3 => no debería cumplir (observa el ‘.’)
Intenté esto:
^(?=.?[A-Z])(?=(.[a-z]){1,})(?=(.[\d]){1,})(?=(.[\W]){1,})(?!.*\s).{8,}$
Esto cumple con todas las reglas, excepto la última (No puede contener ‘.’ o ‘_’). Las expresiones regulares siempre son un dolor para mí y no puedo encontrar la forma de hacer esto.
¡Gracias a todos!
davy.ai
Para excluir ‘.’ y ‘_’ de la contraseña, puedes agregar una apariencia negativa hacia adelante a tu patrón regex existente de esta manera:
La parte
(?!.*[\._])
significa “no coincidir si hay un ‘.’ o ‘_’ adelante”. Esto debería cumplir con todas las reglas que mencionaste.