Manual Básico de Regex
- Local para testar online: https://regex101.com/
- Tag /g no final indica que a busca não para no primeiro resultado encontrado!
- Se for armazenada em uma variável JS, não pode estar entre aspas duplas
/ninja/.test('ninja'); // retorna true
/ninja/.test('ginja'); // retorna false
Verificação por OU (usando [])
/[ng]inja/.test('ninja'); // retorna true
/[ng]inja/.test('ginja'); // retorna true
/[ng]inja/.test('linja'); // retorna false
Verificação por OU (usando () e |)
/(p|t)yre/.test('pyre'); // retorna true
/(p|t)yre/.test('tyre'); // retorna true
Verificação por NOT (usando ^)
/[^a]inja/.test('ninja'); // retorna true
/[^n]inja/.test('ginja'); // retorna true
/[^ngl]inja/.test('linja'); // retorna false
Verificação por AGRUPAMENTOS (usando [])
/[a-z]inja/.test('ninja'); // retorna true
/[a-z]inja/.test('Ginja'); // retorna false, só minúsculas
/[a-z]inja/i.test('Ginja'); // retorna true, letra i no final (insensitive)
Verificação por REPETIÇÃO (usando + e {})
/[ninja]+/.test('ninjaninjaninjaninja'); // retorna true, o + deixa eu escrever a string infinitas vezes
/[ninja]{2}/.test('ninjaninja'); // retorna true, valor entre {} especifica quantas vezes
/[ninja]{1,4}/.test('ninjaninja'); // retorna true, reconhece de 1 a 4 vezes
Verificação por METACARACTERES (usando )
/\d\s\w/.test('ninja'); // retorna false, pois esperava dígito, espaço e letra
/\d\s\w/.test('1 d'); // retorna true
Verificação por OPCIONALIDADE DO CARACTER ANTERIOR (usando ?)
/ninja?/.test('ninj'); // retorna true, pois o caracter a se torna especial (anterior)
Verificação por QUALQUER CARACTERE (usando .)
/ninja./.test('ninjaX'); // retorna true, pois aceita a palavra ninja e qualquer caracter na 6ª posição
/ninja./.test('ninja'); // retorna false, pois falta o sexto caracter
Verificação por QUANTIDADE EXATA DE CARACTERES (usando ^ e $)
/^[a-z]{5}$/.test('ninjaXX'); // retorna false, pois há 7 caracteres
/^[a-z]{5}$/.test('ninja'); // retorna true pois há exatamente 5 caracteres