← Recursos RESOURCE
Consejos prácticos y trampas para validar con expresiones regulares entradas como correo, teléfono o código postal.

En la validación de formularios, las expresiones regulares encajan bien con entradas de formato regular. Para comprobar si toda la cadena coincide con el formato hay que fijar ambos extremos con ^ y $. Sin anclas basta con que coincida una parte de la cadena para que pase, y la validación queda comprometida. En el atributo input pattern de HTML puedes usar tal cual esa misma expresión regular.

Los valores con un número de dígitos y un tipo de caracteres definidos, como el teléfono, el código postal o el identificador, se cubren solo con clases de caracteres y cuantificadores. Ahora bien, si acotas demasiado la regla, bloquearás variantes válidas como los teléfonos internacionales, los nuevos sistemas de código postal o la presencia o ausencia de guiones. Observa primero la diversidad de los datos reales.

No intentes validar el correo a la perfección con una expresión regular. La especificación oficial (RFC 5322) es tan compleja que resulta difícil de reproducir con una expresión regular de uso práctico. Comprueba de forma laxa que contenga @ y un punto, y valida la validez real enviando un correo de confirmación: esa es la manera correcta.

La validación con expresiones regulares del navegador es solo para la comodidad del usuario (UX), no la última línea de defensa. Valida siempre de nuevo en el servidor y, con entradas no confiables, ten cuidado con el retroceso catastrófico (ReDoS) (consulta el artículo sobre rendimiento en los recursos).