Guía de la herramienta
Acerca de Probador de regex
Un regex tester ejecuta expresiones regulares JavaScript sobre texto y muestra coincidencias, grupos de captura e índices en vivo.
Úsalo para depurar patrones de email, URL, logs, extracción y validación de formularios localmente en el navegador.
Cómo usar Regex Tester
- Introduce una expresión regular sin / / externos.
- Activa flags g, i, m, s, u o y según necesites.
- Pega texto de prueba y revisa cada match, capture group e índice.
Cuándo usarlo
- Comprobar si una validación de formulario rechaza entradas válidas.
- Extraer IDs, URLs o códigos de error desde logs y texto.
- Comparar cuantificadores greedy y lazy para controlar la longitud.
Flags, grupos de captura y trampas comunes
JavaScript regex es sensible a flags, escapes y cuantificadores. Un backslash faltante o un .* amplio cambia todo el resultado.
- g devuelve todas las coincidencias; sin g normalmente miras la primera.
- i ignora mayúsculas y m hace que ^ y $ funcionen por línea.
- Los paréntesis crean capture groups; (?: ) evita capturas innecesarias.
- El backtracking pesado puede ralentizar textos largos; evita cuantificadores muy anidados.
Preguntas frecuentes sobre Probador Regex
- ¿Debo escribir /pattern/g?
- No. Escribe solo el pattern y configura flags en los controles separados.
- ¿Por qué el match es más largo de lo esperado?
- .* y .+ son greedy por defecto. Prueba .*? o una clase de caracteres más específica.
- ¿Se sube mi texto?
- No. El matching se ejecuta localmente en el navegador y no se sube a wetool.site.
Regex Tester vs validación en producción
El tester da feedback rápido, pero producción necesita casos límite, valores vacíos, Unicode y pruebas con el motor regex real del servidor.
Checklist de backtracking catastrófico
Un regex que funciona en una muestra corta puede colgarse con input largo. Antes de publicar, revisa cuantificadores anidados y wildcards amplios.
- Evita patrones explosivos anidados o solapados como (.*)+, (.+)+ o (a|aa)+.
- Usa character classes explícitas en vez de .* cuando sea posible; por ejemplo [^,]* para un campo separado por comas.
- Limita longitud de input controlado por usuarios y configura timeouts del lado servidor o usa un engine con ejecución segura.
Regex JavaScript vs engines de otros lenguajes
Pasar en un tester online no garantiza el mismo comportamiento en servidor. Flags, lookbehind, Unicode y named captures varían entre engines.
- Los flags JavaScript g, i, m, s, u, y no equivalen perfectamente a opciones PCRE, Python o Go.
- Lookbehind, Unicode property escapes y named groups pueden faltar en navegadores antiguos o algunos runtimes servidor.
- Antes de mover un patrón al servidor, cubre valores vacíos, input largo, emoji y saltos de línea con unit tests del lenguaje destino.