Expressões regulares em JavaScript com exemplos para Node.js

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 para Node.js



Expressões regulares (regex ou regexp) são uma ferramenta poderosa para buscar, substituir e extrair informações textuais. Em JavaScript e Node.js, elas são usadas em toda parte: desde validação de formulários até análise de logs e processamento de requisições. Este artigo ajudará você a dominar a sintaxe das expressões regulares com exemplos práticos que podem ser executados imediatamente no Node.js.



1. Criando Expressões Regulares em JavaScript



Em JavaScript, existem duas maneiras de criar uma expressão regular:



  • Sintaxe literal — o padrão é colocado entre barras /pattern/flags. Recomendado para padrões estáticos.
  • Construtor RegExp — new RegExp('pattern', 'flags'). Usado quando o padrão é formado dinamicamente.


// Sintaxe literalconst regexLiteral = /hello/i;

// Construtor RegExpconst pattern = 'hello';const regexConstructor = new RegExp(pattern, 'i');

console.log(regexLiteral.test('Hello World')); // trueconsole.log(regexConstructor.test('Hello World')); // true


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



No Node.js e nos navegadores, quatro métodos-chave estão disponíveis para trabalhar com regex. Vamos analisar cada um com exemplos.



Método test()

Verifica se a string contém uma correspondência com o padrão. Retorna true ou false.



const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;console.log(emailPattern.test('user@example.com')); // trueconsole.log(emailPattern.test('invalid-email')); // false


Método exec()

Procura por uma correspondência e retorna um array com detalhes (a própria correspondência, grupos, índice, string de entrada). Se não houver correspondência — null.



const text = 'Preço: 1500 rublos, desconto: 300 rublos';const regex = /(\\d+)\\srublos/g;let match;

while ((match = regex.exec(text)) !== null) { console.log(`Encontrado: ${match[1]} rublos`); // Saída: "Encontrado: 1500 rublos" // Saída: "Encontrado: 300 rublos"}


Método match()

Chamado na string. Retorna um array de correspondências (com a flag g) ou informações detalhadas (sem a flag g).



const logLine = 'Erro 404: página não encontrada';const errorRegex = /(\\d{3}):\\s(.+)/;const result = logLine.match(errorRegex);

console.log(result[0]); // '404: página não encontrada'console.log(result[1]); // '404'console.log(result[2]); // 'página não encontrada'


Método replace()

Substitui as correspondências pela string especificada ou resultado de uma função. Perfeito para formatação de dados.



const phone = '+7 (999) 123-45-67';const cleanPhone = phone.replace(/[\\s\\-\\(\\)\\+]/g, '');console.log(cleanPhone); // '79991234567'

// Substituição usando gruposconst date = '2024-01-15';const formattedDate = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, '$3.$2.$1');console.log(formattedDate); // '15.01.2024'


3. Símbolos Principais e Flags das Expressões Regulares



Para trabalhar eficientemente com regex, é preciso entender os metacaracteres básicos e as flags. Aqui estão os principais:



Símbolos para busca

  • . — qualquer caractere (exceto quebra de linha)
  • \\d — dígito (0-9)
  • \\w — letra, dígito ou sublinhado
  • \\s — caractere de espaço em branco
  • ^ — início da string
  • $ — fim da string
  • * — 0 ou mais repetições
  • + — 1 ou mais repetições
  • ? — 0 ou 1 repetição
  • {n,m} — de n a m repetições


Flags

  • g — busca global (todas as correspondências)

Blogs

Book Recommendations