Hola chicos, trato de verificar si la contraseña contiene caracteres especiales y al menos 2 caracteres (dígito o letra). Así que así:
("&#€$&&÷") ====> false ("&#&'&*#5") ====> false (">~<<`<•5t") ====> true ("{\><>\tt") =====> true ("65%#^$*@") ====> true ("7373673") ====> false ("7267373~") ====> trueProbé esta expresión regular pero parece que no funciona:
/^((?=.*\d{2})|(?=.*?[a-zA-Z]{2}))/Puede afirmar las 2 ocurrencias de un carácter o dígito en la misma búsqueda anticipada y luego hacer coincidir al menos un solo carácter "especial".
Usando un patrón que no distingue entre mayúsculas y minúsculas:
^(?=(?:[^az\d\n]*[az\d]){2})[az\d]*[~!@#$%^&*()_+<>•`{}\\][~!@#$%^&*()_+<>•`{}\\az\d]*$El patrón coincide:
^ Comienzo de cadena(?:[^az\d\n]*[az\d]){2} Afirma 2 ocurrencias de un carácter az o un dígito. La parte [^az\d\n]* niega la clase de carácter usando [^ para evitar retrocesos innecesarios[az\d]* Coincide con caracteres opcionales az o un dígito[~!@#$%^&*()_+<>•`{}\] Coincide con un carácter especial[~!@#$%^& ()_+<>•`{}\az\d] Coincidencia de caracteres permitidos opcionales$ Fin de la cadena