Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

RegExp.prototype.exec()

Trwa tłumaczenie tego artykułu.

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

Autorzy i etykiety dokumentu

 Autorzy tej strony: kowal.alek, teoli, Ptak82, Mgjbot, Bedi
 Ostatnia aktualizacja: kowal.alek,