Tengo la siguiente expresión regular para probar una contraseña segura:
/^(?=.*[az])(?=.*[AZ])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d!$\/%@]{6,20}$/Normas:
Mi pregunta es principalmente sobre la última regla de un mínimo de 1 carácter especial cuando ese carácter es una barra diagonal .
El siguiente código, para el carácter especial @, devuelve VERDADERO como se esperaba:
/^(?=.*[az])(?=.*[AZ])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d!$/%@]{6,20}$/.test("Test@2")Pero el siguiente código, para barra inclinada, NO:
/^(?=.*[az])(?=.*[AZ])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d!$/%@]{6,20}$/.test("Test/2")También traté de escapar tanto de la expresión regular como de la barra inclinada de la cadena de prueba con / pero eso no parece devolver VERDADERO
Mi error estuvo en la primera validación de los caracteres especiales. La solución de trabajo es:
/^(?=.*[az])(?=.*[AZ])(?=.*\d)(?=.*[!$\/%@])[A-Za-z\d!$\/%@]{6,20}$/