Método exec() da RegExp do JavaScript

Definição e uso

exec() Este método testa correspondências no texto.

Este é um padrão de correspondência genérico.

Se encontrar correspondências, retornará o array de resultados; caso contrário, retornará null.

Exemplo

Exemplo 1

Procurar o caractere "e" na string:

let text = "The best things in life are free";
let result = /e/.exec(text);

Experimente você mesmo

Exemplo 2

Procurar "Hello" e "W3School" em toda a string:

let text = "Hello world!";
// Procurar "Hello"
let result1 = /Hello/.exec(text);
// Procurar "W3School"
let result2 = /W3School/.exec(text);

Experimente você mesmo

sintaxe

regexp.exec(string)

parâmetro

parâmetro descrição
string obrigatório. A string a ser pesquisada.

valor de retorno

tipo descrição
array Se encontrar correspondências, o array contém o texto correspondente; caso contrário, retorna null.

detalhes técnicos

valor de retorno

array, que contém os resultados da correspondência. Se não encontrar correspondências, o valor será nullA seguir, é apresentado o formato do array retornado.

lança

tipo descrição
TypeError lança essa exceção se o objeto chamado não for RegExp.

descrição

em todos os métodos de correspondência de RegExp, métodos de correspondência de Stringexec() é a função mais poderosa. É um método genérico, mais fácil de usar do que RegExp.test()eString.replace() e String.match() tudo isso é complexo.

exec() procurará a string stringobtém de regexp o texto correspondente. Se exec() Encontrado o texto correspondente, retornará um array de resultados. Caso contrário, retornará nullEste é o primeiro elemento do array retornado que coincide com a expressão. O segundo elemento coincide com regexp 的第一个子表达式相匹配的文本(如果存在)。第 2 个元素是与 regexp o primeiro subexpressão correspondente ao texto (se existir). O segundo elemento é o texto correspondente aoexec() o texto correspondente ao segundo subexpressão, e assim por diante. Normalmente, a propriedade length do array declara o número de elementos no array. Além dos elementos do array e da propriedade length, stringtambém retorna duas propriedades. A propriedade index declara a posição do primeiro caractere do texto correspondente. A propriedade input aponta para exec() ao chamar o método String.match() o método retornado é o mesmo.

ao chamar um método de expressão regular não global exec() ao chamar o método regexp é uma expressão regular globalexec() o comportamento é um pouco mais complexo. Ele regexp o atributo lastIndex especificado começa a procurar a string string é configurado para o primeiro caractere da correspondência de texto. Isso significa que, através de chamadas repetidas regexp o atributo lastIndex da string exec() método para percorrer todos os textos correspondentes na string. Quando o exec() não encontrar mais textos correspondentes, ele retornará nulle reseta o atributo lastIndex para 0. Se, após concluir uma correspondência de padrão em uma string, precisar começar a procurar uma nova string, é necessário manualmente resetar o atributo lastIndex para 0.

note que, independentemente regexp se é modo globalexec() adicionam detalhes completos ao array retornado. Isso é exec() e String.match() diferente, o último retorna muito menos informações em modo global. De fato, ao chamar repetidamente exec() o método é a única maneira de obter informações completas de correspondência de padrão global.

suporte do navegador

exec() é uma característica do ECMAScript1 (ES1).

Todos os navegadores suportam completamente o ES1 (JavaScript 1997):

Chrome IE Edge Firefox Safari Opera
suporte suporte suporte suporte suporte suporte

métodos de busca de expressão regular

No JavaScript, a busca de texto com expressões regulares pode ser feita por diferentes métodos.

usopadrão (pattern)Como expressão regular, esses são os métodos mais usados:

exemplo descrição
text.match(padrão) método de correspondência de string match()
text.search(padrão) método de busca de string search()
padrão.exec(text) Método RexExp exec()
padrão.test(text) Método RexExp test()