ToolsFoto

Tester de Regex

Escribe una expresión regular y pruébala contra cualquier texto. Las coincidencias se resaltan en tiempo real, con detalle de índices y grupos de captura. Soporta todos los flags de JavaScript (g, i, m, s).

//g

Motor JavaScript nativo con flags y grupos nombrados

La herramienta usa new RegExp(pattern, flagStr) del motor JS del navegador para garantizar compatibilidad exacta con el comportamiento de regex en código JavaScript. Con el flag g activo, usa un bucle regex.exec(text) para encontrar todas las coincidencias y evita bucles infinitos en coincidencias de longitud cero incrementando regex.lastIndex. Cada coincidencia incluye su posición en el string (index), longitud y grupos nombrados (m.groups). El resaltado de coincidencias usa useMemo sobre el patrón, flags y texto, recalculando solo cuando alguno de estos tres cambia. Los errores de sintaxis (patrón inválido) se capturan en el try/catch y se muestran en español.

Regex para validar datos de identidad en LATAM

En el desarrollo de aplicaciones para América Latina, las expresiones regulares son esenciales para validar documentos de identidad fiscal: el RFC mexicano tiene formato AAAA######AAA (4 letras, 6 dígitos de fecha, 3 caracteres de homoclave); el CURP es un código de 18 caracteres que incluye sexo y estado; el RUT chileno termina con un dígito verificador que puede ser K; el CUIT argentino tiene 11 dígitos con prefijo 20/23/27/30/33; el CEP brasileño tiene formato #####-###. Probar estas regex aquí antes de implementarlas en formularios de WooCommerce, plataformas de facturación o pasarelas de pago como Conekta, Khipu o Culqi ahorra horas de debugging en producción.

Otras herramientas

Preguntas frecuentes

¿Qué son las expresiones regulares?
Las expresiones regulares (regex) son patrones para buscar y manipular texto. Usan caracteres especiales como . (cualquier carácter), * (0 o más repeticiones), + (1 o más), [] (conjuntos) y muchos más.
¿Qué significan los flags g, i, m y s?
g (global) encuentra todas las coincidencias en lugar de detenerse en la primera. i (case insensitive) ignora mayúsculas/minúsculas. m (multiline) hace que ^ y $ coincidan con inicio/fin de línea. s (dotAll) hace que . coincida también con saltos de línea.
¿Cómo se usan los grupos de captura?
Rodea una parte del patrón con paréntesis: (d+) captura uno o más dígitos. Con grupos nombrados: (?<año>d{4}). Las coincidencias de grupos se muestran en el detalle de cada resultado.
¿Se puede probar la regex contra texto multilínea?
Sí. El área de texto acepta múltiples líneas. Para que ^ y $ coincidan con inicio/fin de cada línea (no solo del texto completo), activa el flag m (multiline).
¿Las regex de esta herramienta son compatibles con JavaScript?
Sí. La herramienta usa el motor de JavaScript (RegExp) del navegador, por lo que el comportamiento es exactamente el mismo que al usar regex en código JavaScript.
¿Cómo valido un email, número de teléfono o documentos de identidad de LATAM con regex?
Para email básico: /^[^s@]+@[^s@]+.[^s@]+$/. Para teléfonos de México (+52): /^+?52[s-]?d{2}[s-]?d{4}[s-]?d{4}$/. Para RUT chileno: /^d{1,2}.d{3}.d{3}-[dkK]$/. Para CURP mexicano: /^[A-Z]{4}d{6}[HM][A-Z]{5}[A-Z0-9]{2}$/. Para RFC mexicano: /^[A-Z]{3,4}d{6}[A-Z0-9]{3}$/. Para DNI argentino: /^d{7,8}$/. Para CUIT/CUIL argentino: /^(20|23|24|27|30|33|34)d{8}d$/. Cada país tiene su propio formato; prueba y ajusta el patrón aquí antes de implementarlo.
¿Cómo se usan las expresiones regulares en frameworks web de LATAM?
Las regex son fundamentales en el desarrollo web de la región: en PHP (Laravel) para validar campos de formulario con preg_match(); en JavaScript/TypeScript para sanitizar entradas de usuario antes de enviarlas a APIs de Mercado Libre o Stripe; en Python (Django) para las rutas url() y la validación de modelos; en Node.js para parsear logs de servidores o validar tokens. En formularios de checkout de WooCommerce o Shopify, regex personalizadas validan RFC, CUIT, RUT, NIT o CEP (Brasil) para asegurar que los datos fiscales son correctos antes de procesar el pago.