Referência de conteúdo do artigo: guia definitivo de JavaScript
Um: a API do aplicativo de expressões regulares
Correspondência regular: use a entrada correspondente (string) -> após as regras de correspondência (objeto de expressão regular) -> obtenha a saída correspondente (string)
Método 1: objeto String (comumente usado no desenvolvimento diário)
método
Exemplo 1
Exemplo 2
Nota
pesquisa
“Aba” .search (“b”) , return 1
'aba'.search (/ a / g) , retornar 0
O modificador g é ignorado e a pesquisa global não é suportada
substituir
'abxAb'.replace (/ ab / gi,' cd ') , retorna' cdxcd '
'1, 2, 3'.split (/ \ s *, \ s * /) , return [' 1 ',' 2 ',' 3 ']
O parâmetro do método de divisão suporta expressões regulares
Método 2: objeto RegExp
estrutura
Comparado com a expressão regular quantidade direta / xxx / método para criar um objeto, o método do construtor RegExp pode criar dinamicamente uma expressão regular
let re =newRegExp('\\d{5}','g')// 由于字符串转义前缀也为\,所以传入的字符串中需先使用\转义\// 等同于 let re =/\d{5}/g
Atributos
Nome do Atributo
significado
Exemplo
Nota
fonte
Texto de expressão regular
/\d/gi.source,return '\ d'
Atributo de acesso, somente leitura, com get, sem set
global
Modificador g, se corresponde globalmente
/\d/gi.global,return true
Atributo de acesso, somente leitura, com get, sem set
ignorar caso
Modificador i, se o caso corresponde
/\d/gi.global,return true
Atributo de acesso, somente leitura, com get, sem set
multilinha
Modificador m, se deve combinar várias linhas
/\d/gi.global,return false
Atributo de acesso, somente leitura, com get, sem set
lastIndex
Os métodos exec e test são comumente usados e apontam para o início da partida
Os exemplos de métodos de teste e exec a seguir
Atributos de dados, legíveis e graváveis
método
Nome do método
significado
Exemplo
Nota
exec
Uso do iterador de classe. Quando não há modificador g, é consistente com correspondência. Quando há um modificador g, exec termina após a primeira correspondência ser bem-sucedida (o método de correspondência de string termina depois que a correspondência completa é concluída) e o atributo lastIndex é atualizado para apontar para o início da próxima correspondência
Como mostrado abaixo
A figura a seguir mostra que, para ES5, as expressões regulares não têm o conceito de um "conjunto de constantes de expressão regular" e cada uso é um novo objeto. (Após ES5, a quantidade direta regular Js é inconsistente com o projeto de quantidade direta Java String)
teste
Semelhante ao uso de exec, mas retorna se a correspondência for bem-sucedida
Como mostrado abaixo
A posição correspondente está diretamente relacionada ao valor do atributo lastIndex do objeto regular
exemplo de método exec
exemplo de método de teste
Dois: a sintaxe das expressões regulares / xxx /
1. Meça caracteres diretamente
personagem
Combine
letra e número
em si
\ t
Abas
\ n
Nova linha
…
…
2. Classe de personagem []
personagem
Combine
[…]
Qualquer caractere entre colchetes
[^…]
Qualquer caractere que não esteja entre colchetes
.
Qualquer caractere, exceto caracteres de nova linha e outros terminadores de linha Unicode
\ d
Equivalente a [0-9]
\ D
Equivalente a [^ 0-9]
\W
Equivalente a [a-zA-Z0-9]
\W
Equivalente a [^ a-zA-Z0-9]
\ s
Qualquer espaço em branco Unicode
\ S
Qualquer caractere de espaço em branco não Unicode
Seleção, que corresponde à subexpressão à esquerda ou à direita do símbolo
(…)
Combinação, combinando vários itens em uma unidade
…
…
Caso para ver detalhes
1.输入:abcb 规则:/(a(b))(c)\2/ 输出:abcb 1证:引用的位置是参与计数的左括号的位置,(?:xxx)分组用的左括号不计
2.输入:' a " b " ' 规则:/['"][^'"]*['"]/ 输出:' a "
3.输入:' a " b " ' 规则:/(['"])[^'"]*\1/ 输出:' a " b " ' 23证:引用的是正则表达式模式匹配后的文本,不是正则表达式模式。
4.输入:' a " b " ' 规则:/(['"])[^\1]*\1/ 输出:错误(此种引用不能在字符类中使用)
5. Especifique o local correspondente
personagem
significado
^
Partida começando
$
Fim da partida
\ b
Corresponde a um limite de palavra (a posição entre \ w e \ W ou a posição entre o caractere \ w e o início / fim da string)
\ B
Combine limites não-palavra
…
…
6. Modificadores
O modificador é colocado fora do símbolo "/"
personagem
significado
Eu
Executar correspondência que não diferencia maiúsculas de minúsculas
g
Execute uma correspondência global (o padrão é parar quando a primeira for encontrada)
m
Modo de correspondência multilinha, neste modo, ^ corresponde ao início da linha e $ corresponde ao fim da linha