RegExp.prototype.exec()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
Сводка
ÐеÑод exec() вÑполнÑÐµÑ Ð¿Ð¾Ð¸Ñк ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² Ñказанной ÑÑÑоке. ÐозвÑаÑÐ°ÐµÑ Ð¼Ð°ÑÑив Ñ ÑезÑлÑÑаÑами или null.
ÐÑли ÑелÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑвлÑеÑÑÑ Ð¿ÑоÑÑо опÑеделиÑÑ, пÑоÑ
Ð¾Ð´Ð¸Ñ Ð¾Ð½Ð¾ или неÑ, иÑполÑзÑйÑе меÑод RegExp.prototype.test(), либо меÑод ÑÑÑоки String.prototype.search().
СинÑакÑиÑ
regexObj.exec(str)
ÐаÑамеÑÑÑ
str-
СÑÑока, Ñ ÐºÐ¾ÑоÑой пÑоизводиÑÑÑ ÑопоÑÑавление ÑегÑлÑÑного вÑÑажениÑ.
ÐозвÑаÑаемое знаÑение
ÐÑли ÑопоÑÑавление ÑÑпеÑно вÑполнилоÑÑ, меÑод exec() возвÑаÑÐ°ÐµÑ Ð¼Ð°ÑÑив и обновлÑÐµÑ ÑвойÑÑва обÑекÑа ÑегÑлÑÑного вÑÑажениÑ. ÐозвÑаÑаемÑй маÑÑив в пеÑвом ÑлеменÑе ÑодеÑÐ¶Ð¸Ñ ÑопоÑÑавленнÑй ÑекÑÑ, а в поÑледÑÑÑиÑ
ÑлеменÑаÑ
â ÑекÑÑ, заÑ
ваÑеннÑй пÑи ÑопоÑÑавлении кÑÑглÑми Ñкобками.
ÐÑли ÑопоÑÑавление не ÑдалоÑÑ, меÑод exec() возвÑаÑÐ°ÐµÑ null.
ÐпиÑание
РаÑÑмоÑÑим ÑледÑÑÑий пÑимеÑ:
// СопоÑÑавлÑеÑÑÑ Ñ ÑÑазой «кайÑ, ÑплÑÑÑ», за коÑоÑой ÑледÑÐµÑ Ñлово «вÑи»,
// игноÑиÑÑÑ Ð»ÑбÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸. ÐÐ°Ð¿Ð¾Ð¼Ð¸Ð½Ð°ÐµÑ Ñлова «ÑплÑÑÑ» и «вÑи».
// ÐгноÑиÑÑÐµÑ ÑегиÑÑÑ Ñимволов.
var re = /кайÑ,\s(ÑплÑÑÑ).+?(вÑи)/gi;
var result = re.exec("ÐÑ
, ÑÑжд кайÑ, ÑплÑÑÑ Ð¾Ð±ÑÑм вÑи, гÑÑÐ·Ñ ÑенÑ.");
ТаблиÑа ниже показÑÐ²Ð°ÐµÑ ÑезÑлÑÑаÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ пÑимеÑа:
| ÐбÑÐµÐºÑ | СвойÑÑво/ÐÐ½Ð´ÐµÐºÑ | ÐпиÑание | ÐÑÐ¸Ð¼ÐµÑ |
result |
[0] |
ÐÑе ÑопоÑÑавивÑиеÑÑ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð² ÑÑÑоке. | кайÑ, ÑплÑÑÑ Ð¾Ð±ÑÑм вÑи |
[1], ...[n] |
СопоÑÑавивÑиеÑÑ Ð¿Ð¾Ð´ÑÑÑоки в кÑÑглÑÑ ÑÐºÐ¾Ð±ÐºÐ°Ñ , еÑли они пÑиÑÑÑÑÑвÑÑÑ. ÐолиÑеÑÑво возможнÑÑ Ð¿Ð¾Ð´ÑÑÑок ниÑем не огÑаниÑено. |
[1] = ÑплÑÑÑ
|
|
index |
ÐÐ½Ð´ÐµÐºÑ ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² ÑÑÑоке, наÑинаеÑÑÑ Ñ Ð½ÑлÑ. | 9 |
|
input |
ÐÑигиналÑÐ½Ð°Ñ ÑÑÑока. | ÐÑ
, ÑÑжд кайÑ, ÑплÑÑÑ Ð¾Ð±ÑÑм вÑи, гÑÑÐ·Ñ ÑенÑ. |
|
re |
lastIndex |
ÐндекÑ, Ñ ÐºÐ¾ÑоÑого наÑнÑÑÑÑ ÑледÑÑÑÐ°Ñ Ð¿Ð¾Ð¿ÑÑка ÑопоÑÑавлениÑ. ÐÑли
оÑÑÑÑÑÑвÑÐµÑ Ñлаг "g", оÑÑаÑÑÑÑ ÑавнÑм нÑлÑ.
|
31 |
ignoreCase |
УказÑваеÑ, ÑÑо в ÑегÑлÑÑном вÑÑажении иÑполÑзÑеÑÑÑ Ñлаг игноÑиÑованиÑ
ÑегиÑÑÑа "i".
|
true |
|
global |
УказÑваеÑ, ÑÑо в ÑегÑлÑÑном вÑÑажении иÑполÑзÑеÑÑÑ Ñлаг глобалÑного
ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ "g".
|
true |
|
multiline |
УказÑваеÑ, ÑÑо в ÑегÑлÑÑном вÑÑажении иÑполÑзÑеÑÑÑ Ñлаг ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾
неÑколÑким ÑÑÑокам "m".
|
false |
|
source |
ТекÑÑ Ñаблона ÑегÑлÑÑного вÑÑажениÑ. | кайÑ,\s(ÑплÑÑÑ).+?(вÑи) |
ÐÑимеÑÑ
>ÐÑимеÑ: поиÑк поÑледоваÑелÑнÑÑ ÑопоÑÑавлений
ÐÑли ваÑе ÑегÑлÑÑное вÑÑажение иÑполÑзÑÐµÑ Ñлаг "g", Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¼ÐµÑод exec() неÑколÑко Ñаз Ð´Ð»Ñ Ð½Ð°Ñ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑнÑÑ
ÑопоÑÑавлений в одной и Ñой же ÑÑÑоке. ÐÑли Ð²Ñ ÑделаеÑе ÑÑо, поиÑк наÑнÑÑÑÑ Ð¿Ð¾ подÑÑÑоке ÑÑÑоки str, наÑало коÑоÑой опÑеделÑеÑÑÑ ÑвойÑÑвом lastIndex ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ (меÑод test() Ñакже ÑвелиÑÐ¸Ð²Ð°ÐµÑ ÑвойÑÑво lastIndex). ÐапÑимеÑ, пÑедположим, ÑÑо Ñ Ð²Ð°Ñ ÐµÑÑÑ ÑледÑÑÑий ÑкÑипÑ:
var myRe = /аб*/g;
var str = "аббвгдеабж";
var myArray;
while ((myArray = myRe.exec(str)) !== null) {
var msg = "Ðайдено " + myArray[0] + ". ";
msg += "СледÑÑÑее ÑопоÑÑавление наÑнÑÑÑÑ Ñ Ð¿Ð¾Ð·Ð¸Ñии " + myRe.lastIndex;
console.log(msg);
}
ÐÑÐ¾Ñ ÑкÑÐ¸Ð¿Ñ Ð²ÑÐ²ÐµÐ´ÐµÑ ÑледÑÑÑий ÑекÑÑ:
Ðайдено абб. СледÑÑÑее ÑопоÑÑавление наÑнÑÑÑÑ Ñ Ð¿Ð¾Ð·Ð¸Ñии 3
Ðайдено аб. СледÑÑÑее ÑопоÑÑавление наÑнÑÑÑÑ Ñ Ð¿Ð¾Ð·Ð¸Ñии 9
ÐÑимеÑание: не помеÑайÑе лиÑеÑал ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ (или конÑÑÑÑкÑÐ¾Ñ RegExp) внÑÑÑÑ ÑÑÐ»Ð¾Ð²Ð¸Ñ while; ÑÑо пÑиведÑÑ Ðº беÑконеÑÐ½Ð¾Ð¼Ñ ÑиклÑ, поÑколÑÐºÑ ÑвойÑÑво lastIndex бÑÐ´ÐµÑ ÑбÑаÑÑваÑÑÑÑ Ð² Ð½Ð¾Ð»Ñ Ð½Ð° каждой иÑеÑаÑии Ñикла. Также ÑбедиÑеÑÑ, ÑÑо ÑÑÑановлен Ñлаг глобалÑного ÑопоÑÑавлениÑ, в пÑоÑивном ÑлÑÑае Ñикл бÑÐ´ÐµÑ Ð±ÐµÑконеÑнÑм.
ÐÑимеÑ: иÑполÑзование меÑода exec() вмеÑÑе Ñ Ð»Ð¸ÑеÑалами ÑегÑлÑÑного вÑÑажениÑ
ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¼ÐµÑод exec() без ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±ÑекÑа RegExp:
var matches = /(пÑÐ¸Ð²ÐµÑ \S+)/.exec("ÐÑо пÑÐ¸Ð²ÐµÑ Ð¼Ð¸ÑÑ!");
console.log(matches[1]);
СкÑÐ¸Ð¿Ñ Ð²ÑÐ²ÐµÐ´ÐµÑ Ð² жÑÑнал ÑÑÑÐ¾ÐºÑ Â«Ð¿ÑÐ¸Ð²ÐµÑ Ð¼Ð¸ÑÑ!».
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-regexp.prototype.exec> |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- Ðлава пÑо ÑегÑлÑÑнÑе вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² ÑÑководÑÑве по JavaScript
RegExp