Existem duas maneiras de definir expressões regulares em JavaScript.
1.Regexp Construtor
var padrão = novo regexp ("[bc] em", "i");
Ele recebe dois parâmetros: um é o padrão de string a corresponder, e o outro é a sequência de sinalização opcional.
2. Literal
var padrão = /[bc] em /i;
O padrão correspondente de expressões regulares suporta três strings de sinalizador:
G: Modo global de pesquisa global, que será aplicado a todas as cordas, em vez de interromper a pesquisa quando a primeira partida for pesquisada;
I: Caso Ingore, ignore o caso da carta, ou seja, ignore o padrão e o caso da string ao determinar correspondências;
M: Várias linhas, padrão multilina, ou seja, quando a pesquisa atingir o final de uma linha de texto, continuará procurando se há uma correspondência na próxima linha.
A diferença entre esses dois métodos de criação de expressões regulares é que a expressão regular literal sempre compartilha a mesma instância regexp e cada nova instância do Regexp criada usando o construtor é uma nova instância.
Metacharacter
Metacharacters são personagens com significados especiais. Os principais metacaraceiros das expressões regulares são:
([{ / ^ $ |)? * +.
Metachars têm significados diferentes em diferentes combinações.
Personagens especiais predefinidos
Classe de personagem aula simples
Geralmente, uma expressão regular tem um caractere correspondente a um caractere em uma string, mas podemos usar [] para criar uma classe simples para representar uma classe de caracteres que correspondem a um determinado recurso. Por exemplo:
[ABC] pode corresponder aos caracteres entre parênteses A, B, C ou qualquer combinação do mesmo.
Classe reversa
Como [] pode construir uma classe, você naturalmente pensará na classe correspondente que não contém o conteúdo entre colchetes. Esta classe é chamada de classe reversa. Por exemplo, [^ABC] pode corresponder aos caracteres que não são A ou B ou C.
Categoria de escopo
Às vezes, é muito problemático corresponder aos personagens um por um e o tipo de partida é o mesmo. No momento, podemos usar a linha de conexão "-" para representar o conteúdo entre um determinado intervalo fechado. Por exemplo, a correspondência de todas as letras minúsculas pode usar [AZ], como segue:
Combinando todos os 0 a 9 pode ser expresso usando [0-9]:
Classes predefinidas
Para várias classes que criamos acima, expressões regulares nos fornecem várias classes predefinidas comumente usadas para combinar com caracteres comuns, como segue:
| personagem | Categoria equivalente | significado |
| . | [^/n/r] | Combine todos os personagens, exceto o retorno do carro e a quebra de linha |
| /d | [0-9] | Caracteres numéricos |
| /D | [^0-9] | Caracteres não numéricos |
| /s | [/t/n/x0b/f/r] | Personagens de espaço em branco |
| /S | [^/t/n/x0b/f/r] | Caracteres não-whitespace |
| /c | [A-ZA-Z_0-9] | Personagens do Word (letras, números e sublinhados) |
| /C | [^a-za-z_0-9] | Caracteres não-palavras |
quantificador
O método acima corresponde aos caracteres é individual. Se um personagem aparecer várias vezes em sucessão, será muito problemático corresponder de acordo com o método acima. Portanto, nos perguntamos se existem outros métodos que podem corresponder diretamente aos caracteres que aparecem repetidamente. Expressões regulares nos fornecem alguns quantificadores, como segue:
| personagem | significado |
| ? | Zero ou uma vez (até uma vez) |
| + | Aparecer uma ou mais vezes (pelo menos uma vez) |
| * | Zero ou múltiplas ocorrências (a qualquer hora) |
| {n} | Aparecem n vezes |
| {n, m} | Aparecem n a m vezes |
| {n,} | Aparecem pelo menos n vezes |
Modos gananciosos e não greedos
Para o método de correspondência de {n, m}, não deve ser correspondido? Isso envolve a questão dos padrões correspondentes. Por padrão, os quantificadores são o maior número possível de caracteres correspondentes, o que é chamado de modo ganancioso, por exemplo:
var num = '123456789'; num.match (// d {2,4}/g); // [1234], [5678], [9]Para o modo certo e não-greedoso, você só precisa adicionar "?" Após o quantificador. Por exemplo, {n, m}?, É para combinar com os menores caracteres, como segue:
var num = '123456789'; num.match (// d {2,4}?/g); // [12], [34], [56], [78], [9]Agrupamento
Os quantificadores só podem ser correspondidos várias vezes para um único caractere. E se quisermos corresponder a um certo conjunto de personagens várias vezes? Nas expressões regulares, os suportes podem definir uma corda como um todo como um grupo.
Se quisermos corresponder à palavra Apple aparece 4 vezes, podemos corresponder (Apple) {4} como este, da seguinte forma:
Se você deseja combinar a Apple ou Orange aparecer 4 vezes, pode inserir o caractere do tubo "|", por exemplo:
(maçã | laranja) {4}
Se vários colchetes aparecerem em uma expressão regular usando agrupamento, ou seja, vários grupos, o resultado correspondente também agrupará e numerará as correspondências, por exemplo:
(Apple)/D+(laranja)
Se não queremos capturar certos pacotes, precisamos seguir um ponto de interrogação e um cólon imediatamente antes dos colchetes do pacote, por exemplo:
(?: Apple)/D+(laranja)
limite
Expressões regulares também nos fornecem vários caracteres de correspondência de limites comumente usados, como:
| personagem | significado |
| ^ | Comece com xx |
| $ | Terminando com xx |
| /b | Limite do Word, referindo-se a personagens que não sejam [a-ZA-Z_0-9] |
| /B | Limite não-palavras |
O limite da palavra corresponde a uma posição, um lado dessa posição são os caracteres que compõem a palavra, mas o outro lado é a posição inicial ou final de um caractere ou string não-palavras.
Visualização
LookaHead é usado para corresponder à próxima ocorrência de um conjunto de caracteres específico ou não.
| expressão | significado |
| Exp1 (? = Exp2) | A partida é seguida pelo EXP1 da EXP2 |
| Exp1 (?! Exp2) | Match EXP1, que não é exp2 depois |
Veja um exemplo:
maçã (? = laranja)
(/apple(?=orange)/).test(Appleorange123 '); // true (/apple(?=orange)/).test(Applepear345 '); //falso
Vamos dar uma olhada em outro exemplo:
Apple (?! Orange)
(/apple(?!orange)/).test(Appleorange123 '); // false (/apple(?!orange)/).test(applepear345 '); //verdadeiro
O artigo acima é um clichê sobre a sintaxe de expressão regular JavaScript. Este é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.