Texto 🔒 Roda no seu navegador — nenhum dado é enviado

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.

/ /
Texto de teste
Correspondências e grupos
As correspondências aparecem aqui...

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

FlagEfeito
gEncontra todas as correspondências, não só a primeira; necessária para substituir todas
iIgnora 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
uModo Unicode: code points inteiros em vez de unidades UTF-16, e escapes de propriedade como \p{L}
ySticky: casa apenas onde a correspondência anterior terminou
dRegistra 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

  • \w e \b só 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 flag u, \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 g guarda lastIndex entre chamadas a test() e exec(), 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 com g, ou replaceAll().
  • 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.

Guias relacionados