--- title: RegExp.prototype.exec() slug: Web/JavaScript/Reference/Global_Objects/RegExp/exec tags: - JavaScript - Method - Prototype - RegExp translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/exec original_slug: Web/JavaScript/Referencje/Obiekty/RegExp/exec ---
{{ JSRef }}
Wykonuje operacje wyszukiwania danego łańcucha znaków. Wynikiem jest macierz.
regexObj.exec(str)
str 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 | 
  |
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
exec()You can also use exec() without creating a {{jsxref("RegExp")}} object:
var matches = /(hello \S+)/.exec('This is a hello world!');
console.log(matches[1]);
This will display an alert containing 'hello world!'.