Una ejecución real de casos límite regex
Cómo probar expresiones regulares JavaScript con casos límite y reemplazos más seguros
Un flujo para revisar expresiones regulares de JavaScript: convierte la intención en casos, verifica el motor y los modificadores y evita patrones costosos con datos de producción.
Abrir herramientaDescribe antes de escribir
Escribe entradas que deben coincidir y otras que no, incluidos límites, cadenas vacías, Unicode y casos que casi coinciden. Indica si necesitas una coincidencia completa o un grupo.
Las anclas, los límites, los espacios, las partes opcionales y los escapes suelen decidir el resultado. Usa un analizador para JSON, URL, fechas o marcado cuando importe la gramática completa.
Usa el mismo motor y flags explícitos
La herramienta usa JavaScript RegExp: g, i, m, s, u e y. PCRE, Python, Java, .NET, base de datos o servidor pueden diferir.
g considera ocurrencias, m cambia ^ y $, s deja que punto coincida saltos, u cambia Unicode e y exige posición exacta.
Revisa grupos y reemplazo
Comprueba grupos numerados y nombrados tanto presentes como opcionales ausentes.
Prueba $&, $1 y $<name>. Con reemplazo, esta herramienta sustituye globalmente incluso sin g.
Evita riesgo de rendimiento
Repeticiones ambiguas anidadas como `(a+)+` o `(.*)*` sobre casi coincidencias largas pueden ser muy lentas.
El límite es de 500 KB y 1.000 coincidencias, pero no hay aislamiento en un proceso separado ni tiempo máximo de ejecución. Usa muestras adversarias cortas y protecciones de servidor para entradas no confiables.
Conserva casos repetibles
Guarda el patrón, los modificadores, los ejemplos y los resultados esperados junto al código y conviértelos en una prueba automática en el entorno de ejecución final.
Todo es local, pero logs, tokens, correos y URLs firmadas siguen siendo sensibles; usa muestras redactadas.
Preguntas frecuentes
¿Por qué falla en servidor?
El servidor puede usar otro motor o dialecto.
¿g cambia reemplazo?
La vista con reemplazo aplica globalmente.
¿500 KB evita regex lentas?
No. La herramienta no impone un tiempo máximo de ejecución.