RegExp.prototype.exec()

Podsumowanie

Wykonuje operacje wyszukiwania danego 艂a艅cucha znak贸w. Wynikiem jest macierz.

Sk艂adnia

regexObj.exec(str)

 

Parametry

str 
艁a艅cuch znak贸w, do kt贸rego ma by膰 por贸wnane wyra偶enie.

Opis

Jak wynika z opisu sk艂adni metoda exec mo偶e by膰 wywo艂ana w spos贸b bezpo艣redni (za pomoc膮 regexp.exec(str)) lub po艣redni (za pomoc膮 regexp(str)).

Je艣li wynik b臋dzie pozytywny metoda exec zwr贸ci macierz oraz zaktualizuje w艂asno艣ci obiektu. W przeciwnym wypadku zostanie zwr贸cone null.

Przejrzyj poni偶szy przyk艂ad:

//Znajd藕 pojedyncze "d" poprzedzone przez jedno lub wi臋cej "b", po kt贸rych nast臋puje pojedyncze "d"
//Zapami臋taj znalezione "b" oraz nast臋puj膮ce "d"
//Ignoruj wielko艣膰 liter
var re=/d(b+)(d)/ig;
var myArray = re.exec("cdbBdbsbz");

Poni偶sza tabela pokazuje rezultaty wygenerowane przez skrypt:

Obiekt W艂a艣ciwo艣膰/Indeks Opis Przyk艂ad
myArray   Zawarto艣膰 myArray. [ \"dbBd\", \"bB\", \"d\"') ]
index Indeks wyszukania 艂a艅cucha znak贸w rozpoczynaj膮cy si臋 od 0. 1
input Ci膮g bazowy. cdbBdbsbz
[0] Ostatnie odnalezione znaki. dbBd
[1], ...[n ] Wyszukane pod艂a艅cuch w nawiasach. Liczba mo偶liwych pod艂a艅cuch jest nieokre艣lona. [1] = bB
[2] = d
myRe lastIndex Indeks, od kt贸rego rozpocz膮膰 nowe wyszukiwanie. 5
ignoreCase Wskazuje czy flaga "i" zosta艂a u偶yta. true
global Wskazuje czy flaga "g" zosta艂a u偶yta do globalnego przeszukiwania. true
multiline Wskazuje czy flaga "m" zosta艂a u偶yta do globalnego przeszukiwania. false
source Tekst wyszukiwanego 艂a艅cucha znak贸w. d(b+)(d)

Je偶eli twoje wyra偶enie regularne korzysta z flagi "g", mo偶esz wielokrotnie u偶ywa膰 metody exec() aby por贸wna膰 je z tym samym ci膮giem znak贸w. W takim wypadku por贸wnywanie rozpoczyna si臋 od elementu zdefiniowanego jako lastIndex. Na przyk艂ad:

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);
}

Skrypt ten wy艣wietli nast臋puj膮cy tekst:

Found abb. Next match starts at 3
Found ab. Next match starts at 9

Przyk艂ady

Przyk艂ad: Zastosowanie exec()

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 display an alert containing 'hello world!'.

Zobacz tak偶e