Skip to content

Instantly share code, notes, and snippets.

@marciofmjr
Created October 25, 2019 11:54
Show Gist options
  • Save marciofmjr/fc8295cee8c5fa408d0954d7c60ada31 to your computer and use it in GitHub Desktop.
Save marciofmjr/fc8295cee8c5fa408d0954d7c60ada31 to your computer and use it in GitHub Desktop.

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment