Literal ou RegExp?
Use /regex/ quando o padrão é conhecido no código. Use new RegExp(texto) quando o padrão é montado dinamicamente. No segundo caso, atenção ao escape de barras invertidas dentro de strings JavaScript.
const re1 = /\d{3}/g;
const re2 = new RegExp('\\d{3}', 'g');test() para resposta booleana
test() retorna true ou false e funciona bem quando você só precisa saber se existe correspondência.
const email = /^[\w.-]+@[\w.-]+\.[A-Za-z]{2,}$/;
console.log(email.test('dev@example.com')); // truematch() e matchAll() para extrair
match() retorna correspondências de uma string. Com grupos e múltiplas ocorrências, matchAll() pode ser mais conveniente porque permite iterar sobre resultados e grupos capturados.
replace() para transformar texto
Regex também serve para substituição. Você pode remover espaços repetidos, padronizar separadores ou trocar padrões específicos.
'a b'.replace(/\s+/g, ' '); // 'a b'
Flags mais usadas
g busca todas as ocorrências, i ignora diferença entre maiúsculas e minúsculas e m altera o comportamento de âncoras em textos com múltiplas linhas. Use somente as flags necessárias.
Próximo passo: teste de verdade
Use o Playground para experimentar a expressão e depois pratique no jogo com feedback de falsos positivos e falsos negativos.