Baseline Widely available
O método exec()
executa a busca por um padrão em uma determinada string. Retorna um array, ou null
.
Se você está precisa somente de um retorno verdadeiro/falso, use o método RegExp.prototype.test()
ou String.prototype.search()
.
string
A string para comparar com a expressão regular
Se a combinação acontecer, o método exec()
o método retorna um array e atualiza as propriedades do objeto da expressão regular. Esse array retornado possui o texto combinado como primeiro item e depois um item para cada captura contendo o respectivo texto.
Se falhar, o retorno do método exec()
será null
.
Considere o exemplo abaixo:
// Encontra combinações "quick brown" seguido de "jumps", ignorando caracteres entre eles
// Relembra "brown" e "jumps"
// Ignora caixa (maiúsculo e minúsculo)
var re = /quick\s(brown).+?(jumps)/gi;
var result = re.exec("The Quick Brown Fox Jumps Over The Lazy Dog");
A tabela a seguir provê os resultados do script:
result
[0]
A string completa dos caracteres encontrados Quick Brown Fox Jumps
[1], ...[n ]
As combinações de substrings parametrizadas encontradas, se existir. A quantidade de possÃveis substrings parametrizadas é ilimitado. [1] = Brown
[2] = Jumps
index
O Ãndice base 0 do valor encontrado na string.
4
input
String original The Quick Brown Fox Jumps Over The Lazy Dog
re
lastIndex
O Ãndice que começa a próxima combinação encontrada. Quando "g
" não é definido, este valor será sempre 0. 25
ignoreCase
Indica se a flag "i
" foi usada para ignorar caixa alta/baixa. true
global
Indica se a flag "g
" foi usada para encontrar combinações de forma global. true
multiline
Indica se a flag "m
" foi usada para pesquisar em strings de diversas linhas. false
source
Texto do padrão. quick\s(brown).+?(jumps)
Exemplos Procurando combinações sucessivas
If your regular expression uses the "g
" flag, you can use the exec()
method multiple times to find successive matches in the same string. When you do so, the search starts at the substring of str
specified by the regular expression's lastIndex
property (test()
will also advance the lastIndex
property). For example, assume you have this script:
var myRe = /ab*/g;
var str = "abbcdefabh";
var myArray;
while ((myArray = myRe.exec(str)) !== null) {
var msg = "Found " + myArray[0] + ". ";
msg += "Next match starts at " + myRe.lastIndex;
console.log(msg);
}
This script displays the following text:
Found abb. Next match starts at 3 Found ab. Next match starts at 9
Nota: Do not place the regular expression literal (or RegExp
constructor) within the while
condition or it will create an infinite loop if there is a match due to the lastIndex
property being reset upon each iteration. Also be sure that the global flag is set or a loop will occur here also.
exec()
com RegExp
literais
You can also use exec()
without creating a RegExp
object:
var matches = /(hello \S+)/.exec("This is a hello world!");
console.log(matches[1]);
This will log a message containing 'hello world!'.
Especificações Compatibilidade com navegadores Veja tambémRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4