Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] Validación de formularios en HTML no se funciona en varios navegadores

He realizado lo explicado en el video sobre la validación de formularios con HTML y la verdad es que no me ha funcionado ni el mensaje customizado como las reglas del pattern, unicamente la cantidad de dígitos ingresados. Luego de ingresar 6 números, este me da por correcta la contraseña ingresada, para esta prueba utilicé los navegadores: Opera v114.0.5735.199 , Brave v1.52.130, y Microsoft Edge v114.0.1823.67 y en este ultimo ni siquiera funciona las reglas

<div class="input-container">
                        <input name="password" id="password" class="input" type="password" placeholder="Contraseña"
                            required minlength="6" maxlength="12"
                            pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?!.*[ !@#$%^&*_=+-]).{6,12}$" title="La contraseña debe contener al menos 6 caracteres y como maximo 12, debe contener minúsculas, mayusculas y numeros ">
                        <label class="input-label" for="password">Contraseña</label>
                        <span class="input-message-error">Este campo no es valido</span>
2 respuestas
solución!

El problema está en el pattern. Resulta que en la expresión, el sigo de admiración ! es reconocido como un carácter especial

(?!.*[ !@#$%^&*_=+-]), 

por lo que el pattern lo está interpretando mal.

La solución es agregar una barra invertida \ en esa sección de la expresión para que sea interpretada correctamente. Quedaría así:

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

Esta solución fue aportada como sugerencia por otro compañero.

Muchas gracias Freddy, me funcionó a la perfección, agradezco la ayuda brindada