Irmão, aprendi recentemente JavaScript e vi que os pontos de conhecimento eram um pouco confusos quando estava aprendendo expressão regular, então escrevi um blog para resumir.
definição
Existem duas maneiras de definir o Reg Exp em JavaScript:
1) Use novo EXP: var exp1 = novo exp ("abc");
2) Coloque o padrão diretamente entre dois //: var exp2 = /abc /; //Observação. . Não há citações duplas, se você adicionar, ele se torna uma string
Personagens especiais
Visualmente, caracteres especiais são os mesmos que os de Perl. . Apenas use -o diretamente
/D caracteres de dígitos
/W caracteres alfanuméricos ("personagens da palavra")
/s caracteres de espaço em branco (espaço, guia, newline e similar)
/D caracteres que não são dígitos
/W caracteres não alfanuméricos
/S caracteres não-whitespace
. Um período corresponde a todos os personagens, exceto newlines
Há uma maneira muito simples de lembrar:
d = dígito, então é um número
W = palavra para que sejam cartas
s = espaço então é um espaço
Todas as capitalizações são inversas. .
Suportes []
Coloque o padrão entre colchetes significa que, desde que qualquer caractere seja comparado, é verdade. (É o mesmo que java ou perl)
por exemplo
A cópia do código é a seguinte:
console.log (/[01]/. Test ("023424")); // verdadeiro
console.log (/[01]/. Test ("13424")); // verdadeiro
console.log (/[01]/. Test ("23424")); // false
Suportes ()
Isso significa que tudo entre colchetes deve ser verdadeiro
por exemplo
A cópia do código é a seguinte:
console.log (/[01]/. Test ("013424")); // verdadeiro
console.log (/[01]/. Test ("13424")); // false
console.log (/[01]/. Test ("230424")); // false
console.log (/[01]/. Test ("230142401")); // verdadeiro
Quantificadores
É o mesmo que Java. . Esta tabela é muito boa. . Eu sempre gostei de usar isso
| Ambicioso | Relutante | Possessivo | Significado |
|---|---|---|---|
| X? | X ?? | X?+ | X, uma vez ou de jeito nenhum |
| X* | X*? | X*+ | X, zero ou mais vezes |
| X+ | X+? | X ++ | X uma ou mais vezes |
| X {n} | X {n}? | X {n}+ | X, exatamente n vezes |
| X {n,} | X {n,}? | X {n,}+ | X, pelo menos n vezes |
| X {n, m} | X {n, m}? | X {n, m}+ | X, pelo menos n , mas não mais que M vezes |
funções de objeto de expressão
1) O teste é muito simples. Basta colocar a string para testar em teste (...), e essa função retornará true/false, que representa a correspondência/incomparável
2) Exec, esta função retorna nulo se nenhuma string de correspondência for encontrada. Se for encontrado, uma matriz será devolvida. Isso contém seqüências de partidas em ordem.
3) String.Place (Expression1, String1) Esta função substitui a parte de correspondência na expressão com String1. Na String1, você pode usar o grupo entre parênteses na expressão anterior
, para substituir uma parte dele. Por exemplo, "co-ol" .Rplace (/[/w] +/- [/w]+/, "$ 2- $ 1"); // "OL-CO" pode ser usado até US $ 9
4) String.Place (expressão, função) Esta é uma versão aprimorada e é muito poderosa. Você pode definir qualquer saída que desejar através da função. O uso específico não está listado aqui, consulte
Clique para abrir o link
Gerar dinamicamente a expressão de reg
Este método pode ser aplicado quando você deseja usar algo no Reg exp apenas sobre o tempo de execução
Para gerar o Reg Exp, você só precisa usar a String para criar a aparência do Reg Exp e, em seguida, usar o construtor da EXP. (mencionado no início do artigo)
Por exemplo:
A cópia do código é a seguinte:
var name = "querido"
"Oh, meu querido" .Prace (novo exp (nome), "Deus"); // oh meu Deus
No entanto, se houver caracteres especiais no nome, ele poderá ser usado na expressão regular e o método acima geralmente cometer um erro.
Portanto, nesse caso, podemos prefixar cada caractere da sequência de entrada com uma barra de barriga como:
A cópia do código é a seguinte:
var name = df [] vxv;
var expName = name.replace ("/[^/w/s]/g", "// $ &");
"Meu nome é df [] vxv" .Redplace (novo exp (nome), "bob"); // meu nome é bob