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 |
|
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
- Regular Expressions chapter in the JavaScript Guide
RegExp