1. Método construtor
var reg = new RegExp ( 'd' , 'gi' ) ;
2. Método literal
var reg = / d / gi ;
Existem três tipos de modificadores: i, g, m
podem aparecer ao mesmo tempo, sem ordem (ou seja, gi
é igual a ig
), consulte as instruções abaixo
modificador | ilustrar |
---|---|
eu | Ignorar correspondência de maiúsculas e minúsculas |
g | Correspondência global, ou seja, combinar uma correspondência e continuar a combinar até o final |
eu | Correspondência multilinha, ou seja, a correspondência não para após encontrar uma nova linha até o final |
símbolo | efeito |
---|---|
Como uma mudança de significado, ou seja, os caracteres após "" geralmente não são interpretados de acordo com o significado original. Por exemplo, /b/ corresponde ao caractere "b". O significado da mudança é corresponder a um limite de palavra. Ou a restauração de caracteres de função de expressão regular, como " " corresponde ao metacaractere antes dele 0 ou mais vezes, /a / corresponderá a a, aa, aaa Depois de adicionar "", /a*/ corresponderá apenas a "a *". | |
^ | Corresponde a uma entrada ou ao início de uma linha, /^a/ corresponde a "um A", mas não corresponde a "An a" |
$ | Corresponde a uma entrada ou ao final de uma linha, /a$/ corresponde a "An a", mas não corresponde a "an A" |
. | Corresponde a qualquer caractere, exceto novas linhas e terminadores |
* | Corresponde ao metacaractere anterior 0 ou mais vezes, /ba*/ corresponderá a b,ba,baa,baaa |
+ | Corresponde ao metacaractere anterior 1 ou mais vezes, /ba+/ corresponderá a ba, baa, baaa |
? | Corresponde ao metacaractere anterior 0 ou 1 vezes, /ba?/ corresponderá a b,ba |
(x) | Combine x e salve x em variáveis chamadas $1...$9 |
x | sim |
{n} | Combine exatamente n vezes |
{n,} | Combine n ou mais vezes |
{n,m} | Corresponder nm vezes |
[xyz] | Conjunto de caracteres (conjunto de caracteres), corresponde a qualquer caractere (ou metacaractere) neste conjunto |
[^xyz] | Não corresponde a nenhum caractere deste conjunto |
[az] | Qualquer letra [] pode representar qualquer um |
[^az] | ^ em não letras [] representa exceto |
[b] | Corresponde a um caractere de retrocesso |
b | Corresponder a um limite de palavra |
B | Combine uma palavra sem limite |
cX | Aqui, X é um caractere de controle, /cM/ corresponde a Ctrl-M |
d | Corresponde a um caractere alfanumérico, /d/ = /[0-9]/ |
D | Corresponde a um caractere não alfanumérico, /D/ = /[^0-9]/ |
n | Corresponde a um caractere de nova linha |
r | Corresponde a um retorno de carro |
f | Corresponder feed de formulário |
s | Corresponde a um caractere de espaço em branco, incluindo n, r, f, t, v, etc. |
S | Corresponde a um caractere que não seja espaço em branco, igual a /[^nfrtv]/ |
t | corresponder a um caractere de tabulação |
v | Corresponde a um caractere de tabulação dupla |
c | Corresponde a um caractere que pode formar uma palavra (alfanumérico, esta é minha tradução livre, incluindo números), incluindo sublinhados, como [w] correspondendo ao 5 em "$5,98", que é igual a [a-zA-Z0-9 ] |
C | Corresponde a um caractere que não pode formar uma palavra, como [W] correspondendo ao $ em "$5,98", que é igual a [^a-zA-Z0-9] |
Corresponde a caracteres NUL |
Asserções de largura zero são usadas para encontrar coisas antes ou depois de algum conteúdo (mas não incluindo esse conteúdo), ou seja, são usadas como b,^,$
para especificar uma posição que deve atender a certas condições (ou seja, asserções), então elas também são chamadas de asserções de largura zero
Afirmação antecedente | Também chamada de asserção antecipada positiva de largura zero (?=表达式) o que significa corresponder à posição antes da expressão | Por exemplo, [az]*(?=ing) pode corresponder a cozinhar e cantar em canto culinário. |
Nota: As etapas de execução da asserção antecipada são as seguintes: primeiro encontre o primeiro ing da extremidade direita da string a ser correspondida (ou seja, a expressão na asserção antecipada) e, em seguida, corresponda à expressão anterior, se não puder ser. correspondido, continue Encontre o segundo ing e, em seguida, combine a string antes do segundo ing. Se corresponder, então combine.
Afirmação posterior | Também chamada de asserção pós-lookback de largura zero (?<=表达式) que significa corresponder à posição após a expressão. | Por exemplo (?<=abc).* pode corresponder a defg em abcdefg |
Nota: A asserção tardia é exatamente o oposto da asserção antecipada. Suas etapas de execução são as seguintes: primeiro encontre o primeiro abc da extremidade esquerda da string a ser correspondida (ou seja, a expressão na asserção antecipada. ) e, em seguida, corresponda à seguinte expressão, se não puder ser correspondida, continue a procurar o segundo abc e, em seguida, corresponda à sequência após o segundo (?<=abc).*
. Se puder ser correspondido, será correspondido. (?<=abc).*
pode corresponder a defgabc em abcdefgabc em vez de abcdefg
Asserção negativa de largura zero | (?!表达式) também corresponde a uma posição de largura zero, mas a "afirmação" nesta posição assume o valor inverso da expressão. Por exemplo, (?!表达式) representa a posição antes da expressão. , corresponda a esta posição ; Se a (?<!表达式) for verdadeira, ela não corresponde: Da mesma forma, existem dois tipos de asserções negativas de largura zero: "primeiro" e "último". (?<!表达式) |
(?<!表达式)
(?!表达式)
Use parênteses para quebrar a string correspondente e, em seguida, use a expressão $1 no valor de substituição para obter o valor correspondente atualmente. Por exemplo, se houver vários parênteses, você pode usar $1, $2, $3 para obter. o valor correspondente Depois de substituir tudo, estes são os dados que finalmente queremos.
Por exemplo, a seguir está uma expressão regular na caixa de pesquisa, que pode corresponder a todos os atributos class
na estrutura HTML
className = "([^0-9]+)"
Então podemos substituir
className = { { $1 } }
Então vai
className = "xxx" //转化为
className = { { xxx } }
1. Métodos relacionados ao objeto RegExp
nome do método | Cenários de uso | valor de retorno | Exemplo |
---|---|---|---|
teste | Determine se corresponde | verdadeiro ou falso | /d/.test('eno yao 2019') |
teste | Retorna resultados correspondentes, semelhantes a match | matriz ou nulo | /d/.exec('eno yao 2019') |
2. Métodos relacionados ao objeto String
nome do método | Cenários de uso | valor de retorno | Exemplo |
---|---|---|---|
corresponder | Retorna o resultado correspondente. Em condições não globais, é consistente com o resultado retornado por exec e possui informações que apontam para a sequência correspondente. Em condições globais, todos os resultados correspondentes são retornados de uma só vez. | matriz ou nulo | 'eno yao 2019'.match(/d/) |
substituir | Substitua uma string por outra string ou substitua uma string correspondente regular por outra substring | matriz ou nulo | 'eno yao 2019'.replace(/d/, '2019') |
procurar | Encontre a posição da primeira substring correspondente e retorne o valor do índice, caso contrário, retorne -1 | índice | 'eno yao 2019'.search(/d/, '2019') |
dividir | Divida a matriz de acordo com a string ou string acordada, aceite uma string ou regular | índice | 'eno yao 2019'.search(/d/, '2019') |