Expressões regulares descrevem um padrão de correspondência de string, que pode ser usado para verificar se uma string contém uma determinada substring, substituir a substring correspondente ou retirar uma substring que atenda a uma certa condição de uma certa string, etc.
Como as expressões regulares não são usadas com frequência, elas são fáceis de esquecê -las com frequência. O editor a seguir lista as funções e funções comumente usadas aqui de maneira concisa para visualização futura:
Existem 2 funções comumente usadas do objeto regexp
1. Função de teste
Uso: regexpobject.test (string)
Retornar: true se a string string contiver texto correspondente a regexpobject, caso contrário, false.
Descrição: Não há nada de especial nesse método, e não há tratamento especial para o modificador G
Exemplo:
var url = 'http://www.baidu.com?a=1&b=2&c=3'; // O resultado da saída é verdadeiro
2. Função EXEC
Uso: regexpobject.exec (string)
Retorno: retorna uma matriz onde os resultados correspondentes são armazenados. Se nenhuma correspondência for encontrada, o valor de retorno será nulo.
descrever:
O método EXEC () é muito poderoso. É um método geral e é mais complexo de usar do que o método test () e os métodos que suportam expressões regulares.
Se o EXEC () encontrar um texto correspondente, uma matriz de resultados será retornada. Caso contrário, retorne nulo. O 0º elemento desta matriz é o texto que corresponde à expressão regular, o 1º elemento é o texto que corresponde à 1ª subexpressão do regexpobject, se houver, o segundo elemento é o texto que corresponde à 2ª subexpressão do regexpobject e assim por diante. Além do atributo do elemento de matriz e do comprimento, o método EXEC () retorna duas propriedades. A propriedade Index declara a posição do primeiro caractere que corresponde ao texto. A propriedade de entrada armazena a string recuperada. Podemos ver que, ao chamar o método EXEC () de um objeto Regexp não global, a matriz retornada é a mesma que a matriz retornada chamando o método string.match ().
No entanto, quando o regexpobject é uma expressão regular global, o comportamento do EXEC () é um pouco mais complicado. Ele começa a pesquisar a string da string no caractere especificado pela propriedade LastIndex do regexpobject. Quando o EXEC () encontra o texto que corresponde à expressão, após a correspondência, ele define a propriedade LastIndex do regexpoBject para a próxima posição do último caractere do texto correspondente. Ou seja, você pode iterar em todos os texto correspondentes na string chamando o método EXEC () repetidamente. Quando o EXEC () não pode mais encontrar o texto correspondente, ele retorna nulo e redefine a propriedade LastIndex para 0.
Exemplo:
Expressão regular com modificador g
var url = 'http://www.baidu.com?a=1&b=2&c=3'; // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3" ]console.log(reg.exec(url)); // ["b = 2", "b", "2", índice: 25, entrada: "http://www.baidu.com?a=1&b=2&c=3" ]console.log(reg.exec(url)); // ["c = 3", "c", "3", índice: 29, entrada: "http://www.baidu.com?a=1&b=2&c=3" ]console.log(reg.exec(url)); //nullreg.lastindex = 0; // Este código é muito importante, preste atenção à compreensão do console.log (reg.exec (URL)); // ["a = 1", "a", "1", índice: 21, entrada: http://www.baidu.com?a=1&b=2&c=3]
Expressões regulares sem modificador G
var url = 'http://www.baidu.com?a=1&b=2&c=3'; // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3" ]console.log(reg.exec(url)); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3" ]console.log(reg.exec(url)); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3" ]console.log(reg.exec(url)); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3" ]g.lastindex = 0; console.log (reg.exec (url)); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3" ]g.lastindex = 0; console.log (reg.exec (url)); // ["a = 1", "a", "1", índice: 21, entrada: http://www.baidu.com?a=1&b=2&c=3]
Você encontrou algo diferente? Leia a descrição da função com cuidado e você entenderá ^_ ^
Existem 4 funções do objeto de string que suportam a regularidade, falaremos apenas sobre 2 delas.
1. Função de correspondência
Uso: StringObject.match (SearchValue | regexp), aqui só falamos sobre o modo Regexp
Valor de retorno: Matriz que armazena resultados correspondentes. O conteúdo dessa matriz depende se o regexp tem o sinalizador global g.
descrever:
O método Match () recupera o String StringObject para encontrar um ou mais REGEXP correspondentes ao texto. O comportamento desse método depende em grande parte se o regexp tem o sinalizador g.
Se o regexp não tiver sinalizador G, o método Match () poderá executar apenas uma correspondência uma vez no StringObject. Se nenhum texto correspondente for encontrado, corresponde () retornará nulo. Caso contrário, ele retorna uma matriz que armazena informações sobre o texto correspondente encontrado. O elemento 0º da matriz armazena o texto correspondente, enquanto o texto da loja de restos corresponde à subexpressão da expressão regular. Além desses elementos regulares da matriz, a matriz retornada também contém duas propriedades de objeto. O atributo de índice declara a posição do caractere inicial que corresponde ao texto no StringObject e o atributo de entrada declara uma referência ao StringObject.
Se o regexp tiver o sinalizador G, o método Match () executa uma pesquisa global, encontrando todas as substringas correspondentes no StringObject. Se nenhuma substring correspondente for encontrada, o NULL será retornado. Se uma ou mais substâncias correspondentes forem encontradas, uma matriz será retornada. No entanto, o conteúdo da matriz retornado pela Global Match é muito diferente do primeiro. Seu elemento de matriz armazena todas as substringas correspondentes no StringObject, e não há atributo de índice ou atributo de entrada.
Exemplo:
Sem modificador g
var url = http://www.baidu.com?a=1&b=2&c=3'; // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3" ]console.log(result.index); //21console.log(result.input); //http://www.baidu.com?a=1&b=2&c=3" ]console.log(result.input); //http://www.baidu.com?a=1&b=2&c=3
Com modificador g
var url = 'http://www.baidu.com?a=1&b=2&c=3'; // ["a = 1", "b = 2", "c = 3"] console.log (resultado.index); //undefinedConsole.log(result.input); //indefinido
Você encontrou algo diferente? Leia a descrição da função com cuidado e você entenderá ^_ ^
2. Substitua a função
Uso: StringObject.Replace (regexp/substrato, substituição)
Valor de retorno: Uma nova string obtida após a substituição da primeira partida ou todas as correspondências do Regexp pela substituição.
Descrição: O método substituir () da String StringObject executa uma operação de pesquisa e substituição. Ele procurará substâncias correspondentes ao regexp no StringObject e substituirá essas substituras pela substituição. Se o regexp tiver o sinalizador global G, o método substituir () substituir todas as substringas correspondentes. Caso contrário, ele apenas substitui a primeira substring correspondente.
A substituição pode ser uma string ou uma função. Se for uma string, cada correspondência será substituída pela string. Mas o personagem $ em substituição tem um significado específico. Conforme mostrado na tabela a seguir, afirma que a sequência obtida da correspondência de padrões será usada para substituição.
| personagem | Substitua o texto |
|---|---|
| $ 1, $ 2, ... $ 99 | Texto que corresponde às subexpressões 1º a 99 no Regexp. |
| $ & | Uma substring que corresponde ao regexp. |
| $ ` | Texto à esquerda da substring correspondente. |
| $ ' | Texto à direita da substring correspondente. |
| $$ | Símbolo de medição direta. (Isso significa que quando você deseja substituí -lo pelo símbolo $, escreva dois $) |
Exemplo:
Sem modificador g
var url = 'http://www.baidu.com?a=1&b=2&c=3'; http://www.baidu.com?a=1&b=2&c=3return 'ok';}) console.log (url1); //http://www.baidu.com?ok&b=2&c=3
Com modificador g
var url = http://www.baidu.com?a=1&b=2&c=3'; a = 1, a, 1, 21, http://www.baidu.com?a=1&b=2&c=3 e b = 2, b, 2, 25, http://www.baidu.com?a=1&b=2&c=3 e | 'ok';}) console.log (url1); //http://www.baidu.com?ok&ok&ok
Quando o segundo parâmetro é uma string
var url = 'http://www.baidu.com?a=1&b=2&c=3'; // sem modificador gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b=2&c=3var url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&b=2&c=3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com? // com modificador gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b&cvar url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&2&3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&c=3&
O exposto acima está a análise abrangente de correspondência, substituição, executiva e outras funções em seqüências de caracteres JS e expressões regulares introduzidas pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!