Testador de Regex JavaScript
Teste um padrão com o motor RegExp em que o seu JavaScript vai rodar, para que o que casa aqui case também no seu código.
Testador de Regex JavaScript
Uma expressão regular que funciona em uma linguagem pode falhar em outra, então o lugar mais seguro para testar um padrão JavaScript é um motor JavaScript. Esta página abre o Testador de Regex com um exemplo que usa grupos nomeados: o padrão (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}), duas datas no texto de teste e a substituição $<day>/$<month>/$<year>, que as reescreve como dia, mês e ano.
O motor é o do seu navegador
Nada é enviado a um servidor: o padrão é compilado com new RegExp() na sua própria aba. Isso quer dizer V8 no Chrome e no Edge, que também é o motor dentro do Node.js, SpiderMonkey no Firefox e JavaScriptCore no Safari. Os três implementam as mesmas regras do ECMAScript, então um padrão que se comporta bem aqui se comporta igual no seu código front-end ou Node em uma versão atual.
As flags
| Flag | Efeito |
|---|---|
g | Encontra todas as correspondências, não só a primeira; necessária para substituir todas |
i | Ignora maiúsculas e minúsculas |
m | ^ e $ casam em cada quebra de linha, não só nas pontas do texto |
s | . também casa com uma quebra de linha |
u | Modo Unicode: code points inteiros em vez de unidades UTF-16, e escapes de propriedade como \p{L} |
y | Sticky: casa apenas onde a correspondência anterior terminou |
d | Registra o início e o fim de cada grupo, para código que lê match.indices |
Qualquer outra letra é descartada antes de o padrão chegar ao motor, inclusive a flag v, mais nova. Uma letra digitada duas vezes, como gg, é um erro, e a ferramenta mostra a mensagem do próprio motor.
O que costuma confundir em JavaScript
\we\bsó conhecem de A a Z, de a a z, de 0 a 9 e o sublinhado, então não enxergaménem letras persas. Com a flagu,\p{L}casa com uma letra de qualquer alfabeto.- Dentro de uma string, cada barra invertida precisa ser duplicada:
new RegExp("\\d+")é o mesmo padrão que o literal/\d+/. Este testador recebe o padrão do jeito que você o escreve entre barras. - Uma regex com a flag
gguardalastIndexentre chamadas atest()eexec(), então testar a mesma string duas vezes pode dar true e depois false. replace()com uma string simples como padrão troca só a primeira ocorrência; use uma regex comg, oureplaceAll().- Em uma substituição,
$1é o primeiro grupo,$<name>um grupo nomeado,$&a correspondência inteira e$$um cifrão literal.
Substituir com grupos nomeados
O campo de substituição segue as mesmas regras de String.prototype.replace(). Com o padrão de exemplo, $<day>/$<month>/$<year> transforma 2026-09-24 em 24/09/2026. Grupos nomeados também mantêm um padrão legível meses depois: match.groups.year diz mais que match[1].
Páginas relacionadas
Comece de um padrão pronto com a regex de URL, ou corrija palavras duplicadas com localizar e substituir com regex. Para endereços de e-mail, e para números, telefones e endereços IP, o guia de regex para e-mail e o guia de números, telefones e endereços IP entram nos detalhes.