Expressões Regulares em JavaScript com Exemplos: na Prática

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Expressões Regulares em JavaScript com Exemplos: na Prática

\n\n

Expressões regulares (RegExp) são uma ferramenta poderosa para busca, substituição e validação de texto. Em JavaScript, especialmente no ambiente Node.js, elas são amplamente utilizadas: desde a análise de logs até a validação de formulários. Neste artigo, vamos abordar a sintaxe, os métodos e escrever exemplos práticos que você poderá usar imediatamente em seus projetos.

\n\n

1. Fundamentos da Sintaxe e Criação de RegExp

\n\n

Em JavaScript, uma expressão regular pode ser criada de duas formas: literal e construtor. O literal é conveniente para padrões estáticos, o construtor para padrões dinâmicos.

\n\n
// Literal (recomendado)\nconst regexLiteral = /hello/gi;\n\n// Construtor (para padrões dinâmicos)\nconst pattern = "hello";\nconst flags = "gi";\nconst regexConstructor = new RegExp(pattern, flags);
\n\n

Flags (modificadores):

\n
    \n
  • g — busca global (encontra todas as correspondências, não apenas a primeira)
  • \n
  • i — busca insensível a maiúsculas/minúsculas
  • \n
  • m — modo multilinha (as âncoras ^ e $ funcionam para cada linha)
  • \n
  • s — permite que o ponto . corresponda ao caractere de nova linha
  • \n
  • u — ativa suporte completo a Unicode
  • \n
\n\n

Metacaracteres básicos:

\n
    \n
  • . — qualquer caractere, exceto nova linha
  • \n
  • \\d — dígito (0-9)
  • \n
  • \\w — letra, dígito ou sublinhado
  • \n
  • \\s — caractere de espaço em branco (espaço, tabulação, quebra de linha)
  • \n
  • ^ — início da linha
  • \n
  • $ — fim da linha
  • \n
  • [] — classe de caracteres (exemplo [a-z] — todas as letras minúsculas)
  • \n
  • () — grupo de captura
  • \n
  • | — OU lógico
  • \n
\n\n

2. Principais Métodos para Trabalhar com Expressões Regulares

\n\n

Em JavaScript, existem vários métodos que funcionam com RegExp. Vamos analisá-los com exemplos práticos.

\n\n

2.1. test() — verificação de correspondência

\n

O método retorna true ou false. Ideal para validação.

\n\n
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\nconst emails = ["user@example.com", "invalid-email", "test@domain.co.uk"];\n\nemails.forEach(email => {\n  console.log(`${email}: ${emailPattern.test(email)}`);\n});\n// user@example.com: true\n// invalid-email: false\n// test@domain.co.uk: true
\n\n

2.2. exec() — busca com detalhes

\n

Retorna um array com a correspondência e grupos de captura. Útil para extrair dados.

\n\n
const logLine = "ERROR: 2023-10-15 14:30:00 - Server crash";\nconst logPattern = /^(ERROR|WARN|INFO): (\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}) - (.+)$/;\nconst result = logPattern.exec(logLine);\n\nif (result) {\n  console.log(`Nível: ${result[1]}`);\n  console.log(`Data: ${result[2]}`);\n  console.log(`Mensagem: ${result[3]}`);\n}\n// Nível: ERROR\n// Data: 2023-10-15 14:30:00\n// Mensagem: Server crash
\n\n

2.3. match() — busca em string

\n

Método de string que retorna um array de correspondências. Com a flag g — todas as correspondências, sem — a primeira com grupos.

\n\n
const text = "Tel: +7(999)123-45-67, +7(495)765-43-21";\nconst phonePattern = /\\+7\\(\\d{3}\\)\\d{3}-\\d{2}-\\d{2}/g;\nconst phones = text.match(phonePattern);\n\nconsole.log(phones);\n// ['+7(999)123-45-67', '+7(495)765-43-21']
\n\n

2.4. replace() — substituição de texto

\n

Permite substituir correspondências por uma nova string. Suporta caracteres especiais, como $1 para grupos de captura.

\n\n
const messyDate = "2023/10/15";\nconst cleanDate = messyDate.replace(/(\\d{4})\\/(\\d{2})\\/(\\d{2})/, "$3.$2.$1");\nconsole.log(cleanDate); // 15.10.2023\n\n                

Blogs

Book Recommendations