5
respuestas

[Sugerencia] Expresión en el pattern tipo password

Me daba un error con el pattern de contraseña al tenerlo así

pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?!.*[ !@#$%^&*_=+-]).{6,12}$"

Se supone que esta correcta la expresión, busque soluciones y no me daba, y viendo en un foro, me dí cuenta que el error se debe a un carácter inválido dentro de una clase de caracteres en la expresión regular

[^!@#$%^&*_=+-]

Específicamente acá por el signo de exclamación, el signo de exclamación tiene un significado especial dentro de una clase de caracteres, y debe escaparse con una barra invertida \ para representarlo literalmente.

pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?!.*[ !@#$%^&*_=+\-]).{6,12}$" 

Por lo que al agregar la barra invertida queda solucionado

5 respuestas

¡Hola Edwin!

Gracias por compartir tu problema con la expresión en el pattern de contraseña. Parece que encontraste la solución correcta al escapar el signo de exclamación dentro de la clase de caracteres en la expresión regular.

Es importante recordar que algunos caracteres tienen un significado especial dentro de una clase de caracteres en una expresión regular, por lo que deben ser escapados con una barra invertida para representarlos literalmente. En tu caso, el signo de exclamación (!) era el carácter que necesitaba ser escapado.

Aquí está la expresión corregida:

pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?!.*[ !@#$%^&*_=+\-]).{6,12}$"

Con esta corrección, el error que estabas experimentando debería solucionarse.

Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios! :)

Muchas gracias, me sirvió para solucionarlo

very good

Muchas gracias, también batalle con ese error.

Gracias por compartir!!!!