Uma expressão regular é um objeto que descreve um padrão de caracteres.
A classe RegExp do JavaScript representa expressões regulares, e tanto a String quanto a RegExp definem métodos que usam expressões regulares para executar funções poderosas de correspondência de padrões e pesquisa e substituição de texto.
Sintaxe
Uma expressão regular pode ser definida com o construtor RegExp(), da seguinte forma:
var padrao = new RegExp(padrao, atributos);
ou simplesmente
var padrao = /padrao/atributos;
Aqui está a descrição dos parâmetros:
padrao
: Uma string que especifica o padrão da expressão regular ou outra expressão regular.atributos
: Uma string opcional contendo quaisquer dos atributos “g” (global), “i” (insensível a maiúsculas/minúsculas) e “m” (multilinha) que especificam correspondências globais, insensíveis a maiúsculas/minúsculas e multilinhas, respectivamente.
Colchetes
Colchetes ([]) têm um significado especial quando usados no contexto de expressões regulares. Eles são usados para encontrar um intervalo de caracteres.
[...]
: Qualquer caractere único entre os colchetes.[^...]
: Qualquer caractere único que não esteja entre os colchetes.[0-9]
: Corresponde a qualquer dígito decimal de 0 a 9.[a-z]
: Corresponde a qualquer caractere de minúsculas de ‘a’ a ‘z’.[A-Z]
: Corresponde a qualquer caractere maiúsculo de ‘A’ a ‘Z’.[a-Z]
: Corresponde a qualquer caractere de minúsculas de ‘a’ a maiúsculas de ‘Z’.
Os intervalos acima são gerais; você também pode usar o intervalo [0-3]
para corresponder a qualquer dígito decimal de 0 a 3 ou o intervalo [b-v]
para corresponder a qualquer caractere minúsculo de ‘b’ a ‘v’.
Quantificadores
A frequência ou posição de sequências de caracteres entre colchetes e caracteres individuais podem ser denotados por um caractere especial. Cada caractere especial tem uma conotação específica.
p+
: Corresponde a qualquer sequência contendo um ou mais ‘p’s.p*
: Corresponde a qualquer sequência contendo zero ou mais ‘p’s.p?
: Corresponde a qualquer sequência contendo no máximo um ‘p’.p{N}
: Corresponde a qualquer sequência contendo uma sequência de ‘N’ ‘p’s.p{2,3}
: Corresponde a qualquer sequência contendo duas ou três vezes a sequência ‘p’.p{2,}
: Corresponde a qualquer sequência contendo pelo menos duas vezes a sequência ‘p’.p$
: Corresponde a qualquer sequência com ‘p’ no final.^p
: Corresponde a qualquer sequência com ‘p’ no início.
Caracteres Literais
- Alfanumérico: Corresponde ao próprio caractere.
\0
: O caractere NUL (\u0000).\t
: Tabulação (\u0009).\n
: Quebra de linha (\u000A).\v
: Tabulação vertical (\u000B).\f
: Avanço de página (\u000C).\r
: Retorno de carro (\u000D).\xnn
: O caractere latino especificado pelo número hexadecimal nn; por exemplo, \x0A é o mesmo que \n.\uxxxx
: O caractere Unicode especificado pelo número hexadecimal xxxx; por exemplo, \u0009 é o mesmo que \t.\cX
: O caractere de controle ^X; por exemplo, \cJ é equivalente ao caractere de quebra de linha \n.
Metacaracteres
Um metacaractere é simplesmente um caractere alfabético precedido por uma barra invertida que dá à combinação um significado especial.
.
: Qualquer caractere único.\s
: Qualquer caractere de espaço em branco (espaço, tabulação, quebra de linha).\S
: Qualquer caractere que não seja de espaço em branco.\d
: Um dígito (0-9).\D
: Um não dígito.\w
: Um caractere alfanumérico (a-z, A-Z, 0-9, _).\W
: Um caractere não alfanumérico.[\b]
: Um caractere de retrocesso literal (caso especial).[aeiou]
: Corresponde a um único caractere no conjunto especificado.[^aeiou]
: Corresponde a um único caractere fora do conjunto especificado.(foo|bar|baz)
: Corresponde a qualquer uma das alternativas especificadas.
Modificadores
Vários modificadores estão disponíveis para simplificar o trabalho com expressões regulares, como a sensibilidade a maiúsculas e minúsculas, a pesquisa em várias linhas, etc.
i
: Realiza correspondência insensível a maiúsculas e minúsculas.m
: Especifica que se a string tiver caracteres de nova linha ou retorno de carro, os operadores ^ e $ corresponderão a uma quebra de linha em vez de uma borda de string.g
: Realiza uma correspondência global, encontrando todas as correspondências em vez de parar após a primeira correspondência.
Propriedades da RegExp
Aqui está uma lista das propriedades associadas a RegExp e suas descrições.
constructor
: Especifica a função que cria o protótipo do objeto.global
: Especifica se o modificador “g” está definido.ignoreCase
: Especifica se o modificador “i” está definido.lastIndex
: O índice no qual iniciar a próxima correspondência.multiline
: Especifica se o modificador “m” está definido.source
: O texto do padrão.
Métodos da RegExp
Aqui está uma lista dos métodos associados à RegExp juntamente com suas descrições.
exec()
: Executa uma pesquisa por uma correspondência em seu parâmetro de string.test()
: Testa uma correspondência em seu parâmetro de string.toSource()
: Retorna um objeto literal representando o objeto especificado; você pode usar esse valor para criar um novo objeto.toString()
: Retorna uma string representando o objeto especificado.