Метод exec

Метод exec осуществляет поиск по строке по заданному регулярному выражению. Результатом возвращается найденная подстрока и ее карманы. При этом каждый последующий вызов данного метода будет начинать поиск с того места, в котором закончилась предыдущая найденная подстрока. Если совпадение не найдено - возвращается null.

Синтаксис

javascriptрегулярное_выражение.test(строка);

Пример

Проверим работу метода:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res1 = reg.exec(str);
console.log(res1);

let res2 = reg.exec(str);
console.log(res2);

let res3 = reg.exec(str);
console.log(res3);

let res4 = reg.exec(str);
console.log(res4);

Результат выполнения кода:

javascript[12]
[34]
[56]
null

Пример

Воспользуемся методом в цикле:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res;
while (res = reg.exec(str)) {
  console.log(res);
}

Результат выполнения кода:

javascript[12]
[34]
[56] 

Пример

Найденные совпадения можно разложить по карманам:

javascriptlet str = '12 34 56';
let reg = /(\d)(\d)/g;

let res;
while (res = reg.exec(str)) {
  console.log(res);
}

Результат выполнения кода:

javascript[12, 1, 2]
[34, 3, 4]
[56, 5, 6] 

Пример

С помощью свойства lastIndex можно задать позицию, с которой следует начинать поиск:

javascriptlet str = '12 34 56';

let reg = /\d+/g;
reg.lastIndex = 2;

let res1 = reg.exec(str)
console.log(res1);

let res2 = reg.exec(str)
console.log(res2);

Результат выполнения кода:

javascript[34]
[56]

Пример

С помощью модификатора y можно зафиксировать позицию начала поиска:

javascriptlet str = '12 34 56';

let reg = /\d+/y;
reg.lastIndex = 2;

let res1 = reg.exec(str)
console.log(res1);

let res2 = reg.exec(str)
console.log(res2);

Результат выполнения кода:

javascriptnull
[12]

Смотрите также

  • метод test,
    который проверяет строку
  • метод match,
    который ищет совпадения в строке
  • метод matchAll,
    который ищет все совпадения в строке
  • метод replace,
    который выполняет поиск и замену
  • метод search,
    который выполняет поиск
  • метод split,
    который разбивает строку