🧰 ToolPicoTodas las herramientas →

InicioBlogCómo validar un email o teléfono con regex sin volverte loco

Cómo validar un email o un teléfono con regex sin volverte loco

Si alguna vez has copiado un patrón regex de internet sin entenderlo del todo y ha fallado justo en producción, esta guía es para ti: sintaxis básica, grupos de captura, buscar-reemplazar y los errores más típicos, con ejemplos que puedes probar tú mismo.

En esta guía

¿Qué es exactamente un regex, y para qué sirve en el día a día?

Respuesta rápidaUn regex (expresión regular) es una sintaxis para describir un patrón de texto: \d{4} significa «cuatro dígitos seguidos». Se usa sobre todo para validar formularios (email, teléfono, tarjeta), buscar y reemplazar texto, y extraer datos de bloques largos.

La mayoría de los desarrolladores se topan con regex al validar un campo de formulario: «¿este texto parece un email?», «¿este número tiene el formato de un teléfono?». La sintaxis es densa —combina letras, símbolos y llaves— y por eso conviene probar el patrón contra ejemplos reales antes de confiar en él, en vez de asumir que «se ve bien».

Un patrón habitual de validación de email es ^[\w.+-]+@[\w-]+\.[a-zA-Z]{2,}$. Busca letras, dígitos, guion bajo, punto, más o guion antes de la arroba, un nombre de dominio, y una extensión de al menos dos letras. No es un regex 100% conforme con el estándar RFC 5322 —eso sería mucho más largo y complejo— pero cubre la inmensa mayoría de los casos reales de un formulario de contacto.

Banderas regex: g (global, encuentra todas las coincidencias, no solo la primera), i (ignora mayúsculas/minúsculas), m (multilínea, ^/$ por cada línea), s (el punto también captura saltos de línea), u (modo unicode).

¿Cómo funcionan los grupos de captura?

Respuesta rápidaUna sección entre paréntesis, como (abc), es un grupo de captura: hace que esa parte de la coincidencia quede disponible por separado, numerada o con nombre.

Por ejemplo, el patrón (\d{2})-(\d{2}) aplicado al texto «12-34» produce grupo 1 = «12» y grupo 2 = «34». Puedes nombrar un grupo con (?<nombre>...) para acceder a él después por nombre en vez de por número, lo que hace el código mucho más legible cuando el patrón tiene varios grupos. Si solo quieres agrupar sin capturar (por ejemplo para aplicar un cuantificador a varios caracteres a la vez), usa (?:...).

Tabla de ejemplo —resultado hipotético de aplicar (\d{4})-(\d{2})-(\d{2}) sobre distintas fechas de prueba (valores de ejemplo, no datos reales):

Texto de entradaGrupo 1 (año)Grupo 2 (mes)Grupo 3 (día)
2026-07-2920260729
1999-12-3119991231
2032-01-0520320105

¿Cómo se hace un buscar-reemplazar con regex?

Respuesta rápidaEl texto que coincide se sustituye por otra cadena; los grupos capturados se referencian con $1, $2… o con $<nombre> para grupos con nombre.

Un ejemplo práctico: aplicando el patrón (\d{4})-(\d{2})-(\d{2}) con el reemplazo $2/$3/$1, el texto «2026-07-29» se convierte en «07/29/2026» —útil para convertir un formato de fecha ISO al formato que espera un lector humano en un informe. Si la bandera g no está activada, solo se sustituye la primera coincidencia del texto, algo que sorprende a mucha gente la primera vez que lo prueba.

Otro caso de uso frecuente es enmascarar datos sensibles antes de pegarlos en un ticket de soporte: sustituir cualquier email por [OCULTO], por ejemplo, usando el mismo patrón de validación de email como base para la búsqueda.

Errores comunes al escribir un regex de validación

Respuesta rápidaEl error más común es olvidar escapar un punto literal (. en vez de \.), lo que hace que el patrón acepte cualquier carácter donde debería exigir exactamente un punto.

Otros fallos típicos: olvidar los anclajes ^ y $ (el patrón entonces coincide con una parte del texto, no con la cadena completa, y puede «aprobar» entradas con basura al principio o al final); confundir un regex de formato con una validación real —por ejemplo, un patrón de tarjeta bancaria como ^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$ solo comprueba que hay 16 dígitos agrupados de cuatro en cuatro, no que el número sea válido según el algoritmo de Luhn—; y no probar el patrón contra casos límite (cadena vacía, espacios extra, mayúsculas inesperadas) antes de usarlo en producción.

📌 Consejo práctico: antes de dar por bueno un patrón, pruébalo contra una lista de ejemplos que SÍ deberían coincidir y otra que NO deberían coincidir. Si algo falla en cualquiera de las dos listas, el patrón necesita ajustes —esto es justo lo que hace la pestaña «Pruebas» del Probador de Regex.

Prueba tu propio patrón regex en vivo: resaltado de coincidencias, grupos de captura, buscar-reemplazo, explicación paso a paso y generador de código en 4 lenguajes.

Probar la herramienta →

Preguntas frecuentes

¿Cómo se prueba un patrón regex?
Escribe tu patrón regex en una herramienta de prueba e introduce el texto que quieres comprobar para ver las coincidencias en vivo. En el Probador de Regex de ToolPico, tras introducir tu patrón y tus banderas (g, i, m, s, u), las partes del texto que coinciden se resaltan automáticamente en color; los grupos de captura, la posición y los grupos con nombre se muestran en una tabla aparte.
¿Qué es un grupo de captura en regex?
Una sección entre paréntesis, como (abc), forma un «grupo de captura» y hace que el texto que coincide con esa sección esté disponible por separado; por ejemplo, el patrón (\d{2})-(\d{2}) aplicado a «12-34» captura el grupo 1 = «12» y el grupo 2 = «34». Los grupos se pueden nombrar con (?<nombre>...); (?:...) agrupa sin capturar en absoluto.
¿Cuál es un ejemplo de regex para un email?
Un patrón práctico de validación de email es ^[\w.+-]+@[\w-]+\.[a-zA-Z]{2,}$: busca letras, dígitos, guion bajo, punto, más o guion en el nombre de usuario, un signo @, un nombre de dominio y una extensión de al menos dos letras. Un regex de email totalmente conforme con RFC 5322 es mucho más complejo; en la práctica, este patrón simplificado basta para la mayoría de las validaciones de formulario.
¿Cómo funciona la búsqueda-reemplazo en regex?
En una operación de buscar-reemplazar, el texto que coincide con el regex se sustituye por otra cadena; los grupos de captura se referencian con $1, $2… o, para grupos con nombre, con $<nombre>. Por ejemplo, aplicando el patrón (\d{4})-(\d{2})-(\d{2}) con el reemplazo $2/$3/$1, «2026-07-29» se convierte en «07/29/2026». Si la bandera «g» no está marcada, solo se reemplaza la primera coincidencia.
¿Por qué mi regex de tarjeta bancaria no es suficiente para validar de verdad?
Un patrón como ^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$ solo comprueba el formato — cuatro grupos de cuatro dígitos. Un número de tarjeta realmente válido también debe pasar el algoritmo de Luhn, un cálculo aritmético que un regex por sí solo no puede hacer. Usa el regex como filtro rápido de formato y añade la verificación de Luhn en el código de tu aplicación.
¿Es seguro pegar datos personales en un probador de regex online?
En el Probador de Regex de ToolPico, tu patrón y tu texto de prueba se procesan íntegramente en tu navegador; nada se envía a un servidor ni se guarda. Al crear un enlace compartible, solo el patrón y las banderas se añaden a la URL — tu texto de prueba nunca se incluye.
Nota sobre esta guía: los ejemplos numéricos (fechas, tablas) son ilustrativos para explicar el funcionamiento de los grupos de captura y el reemplazo, no datos reales de ningún sistema. Esta guía tiene fines informativos y no sustituye una revisión de seguridad o de cumplimiento normativo para validaciones críticas (pagos, identidad) en producción.