5.1 KiB
title | localeTitle |
---|---|
Regular Expressions Reference | Referência de expressões regulares |
Referência de expressões regulares
Em JavaScript, as expressões regulares são um atalho usado para corresponder à parte desejada de uma string. Isso é benéfico ao tentar manipular ou validar as strings usadas no seu código.
Sintaxe
Expressões regulares são compostas de duas partes - o pattern
e as flags
(opcional). O padrão é gravado entre duas barras, seguido pelos sinalizadores opcionais: var exp = /pattern/flags
.
Padrões
O uso de caracteres alfanuméricos (AZ, az, 0-9) faz uma correspondência direta. No entanto, o poder real das expressões regulares vem com classes de caracteres.
Digamos, por exemplo, você quer para todos os lugares uma string que tenha um número de 0 a 9. Em vez de chamar explicitamente /[0-9]/
, você pode usar a classe de caractere especial de /\d/
. A barra invertida escapa do caractere d
(portanto, não corresponde à letra d
), mas usa as habilidades de correspondência especiais de \d
.
Esse mesmo princípio se aplica a caracteres não numéricos, espaços em branco e outros grupos de correspondência ampla. Expressões regulares podem se tornar ainda mais sofisticadas com o uso de certos modificadores, como o caractere +
.
Esse quantificador permite que você corresponda ao caractere precedente em seu padrão uma ou mais vezes. /s+/
iria coincidir com os s
no desert
e os dois s
's em dessert
!
Há muito mais modificadores que permitem que seu padrão corresponda ao que você possa precisar. Veja a seção More Information abaixo para ver todas as opções de caracteres possíveis para uso em expressões regulares.
Bandeiras
Existem 5 sinalizadores que você pode usar para aplicar regras específicas a toda a expressão regular que está escrevendo. Eles são:
g
- o jogo global; Isso permite que você corresponda a todas as instâncias de sua expressão, em vez de parar após a primeira ocorrência.
i
- o caso de ignorar correspondência (auto-explicativo)
m
- o jogo de várias linhas; isso aplica seu padrão a cada linha como nova; Se você estiver procurando por uma linha que comece com um padrão específico, isso será feito para todas as linhas, em vez de apenas para a primeira.
u
- a correspondência Unicode; isso sinaliza para ler seu padrão como Unicode em vez de texto simples
y
- o fósforo pegajoso; isso corresponde ao seu padrão somente começando no índice encontrado na propriedade RegExp.lastIndex
Criando uma expressão regular
Uma expressão regular é um tipo de objeto. Pode ser construído com o construtor RegExp ou escrito como um valor literal, colocando o padrão em caracteres de barra (/).
var re1 = new RegExp (" abc ") ;
var re2 = / abc /;
Ambos os objetos de expressão regular representam o mesmo padrão: um um caractere seguido por ab seguido por um c.
O objeto RegExp
RegExp
é um construtor que cria um objeto a partir do padrão de expressão regular que você cria. Além da notação literal descrita acima, você também pode usar o formato do construtor para criar uma expressão regular: new RegExp(pattern[, flags])
Teste para jogos
console . log (/ abc /. test (" abcde ") );
// → true
console . log (/ abc /. test (" abxde ") );
// → false
Combinando um conjunto de caracteres
console . log (/[0123456789]/. test (" in 1992") );
// → true
console . log (/[0 -9]/. test (" in 1992") );
// → true
Padrões de escolha
var animalCount = /\ b \ d + ( pig | cow | chicken )s ?\ b /;
console . log ( animalCount . test ("15 pigs ") );
// → true
console . log ( animalCount . test ("15 pigchickens ") );
// → false
Métodos
Você provavelmente usará expressões regulares nos métodos String
, como String.replace()
, mas há alguns métodos que pertencem ao objeto RegExp
.
Por exemplo, RegExp.test()
retornará um booleano para saber se existe uma correspondência entre o padrão de expressão regular e a sequência em questão. RegExp.toString()
irá transformar o objeto de expressão em uma string, o que pode ser útil ao executar testes em seu código.
O primeiro argumento também pode ser uma expressão regular, caso em que a primeira correspondência da expressão regular é substituída. Quando a opção ag (para global) é adicionada à expressão regular, todas as correspondências na sequência serão substituídas, não apenas a primeira.
console . log (" Borobudur ". replace (/[ ou ]/ , "a ") );
// → Barobudur
console . log (" Borobudur ". replace (/[ ou ]/g , "a ") );
// → Barabadar
Mais Informações:
-
Aqui você pode ler sobre todos os caracteres de correspondência de padrões, propriedades de objetos, ver alguns exemplos e mais.
-
Aqui está um ótimo site que permite testar padrões de expressão regular em tempo real, salvar seus favoritos e explorar padrões criados por outras pessoas.