Uma execução real de casos limite regex
Como testar expressões regulares JavaScript com casos de borda e substituições mais seguras
Um fluxo para tornar regex JavaScript revisável: intenção em casos, motor e flags explícitos, padrões caros longe de entradas de produção.
Abrir ferramentaDescreva antes do padrão
Liste casos que devem e não devem corresponder, limites, entrada vazia, Unicode e casos quase correspondentes. Indique se precisa de correspondência completa ou de um grupo.
Âncoras, limites, espaços, partes opcionais e escapes importam. Use um analisador para JSON, URL, datas ou marcação quando a gramática completa for necessária.
Mesmo motor e flags explícitas
Usa JavaScript RegExp: g, i, m, s, u, y. PCRE, Python, Java, .NET, banco ou servidor podem diferir.
g considera ocorrências, m muda ^/$, s amplia ponto, u Unicode, y exige posição exata.
Revise grupos e substituição
Confira grupos numerados e nomeados presentes e opcionais ausentes.
Teste $&, $1 e $<name>. Com substituição, a prévia substitui globalmente sem g.
Evite risco de desempenho
Repetições ambíguas aninhadas como `(a+)+` ou `(.*)*` podem ser lentas em entradas longas que quase correspondem.
Há limites de 500 KB e 1.000 correspondências, mas não há isolamento em processo separado nem tempo máximo de execução. Use casos adversariais curtos e proteção no servidor.
Mantenha casos repetíveis
Guarde o padrão, os sinalizadores, os exemplos e as expectativas junto ao código e automatize os testes no ambiente de execução final.
Tudo é local, mas logs, tokens, e-mails e URLs assinadas continuam sensíveis.
Perguntas frequentes
Por que falha no servidor?
O servidor pode usar outro motor.
g muda substituição?
A prévia substitui globalmente.
500 KB evita regex lenta?
Não. A ferramenta não impõe um tempo máximo de execução.