АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗jsSpREME 124 of 294 menu
Долгожданный Бесплатный курс по выкладке сайта на хостинг. МЫ УЖЕ НАЧАЛИ! Присоединяйтесь к нам!

Метод exec в регулярках JavaScript

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

Давайте посмотрим на примере. Пусть у нас есть следующая строка:

let str = '12 34 56';

Пусть у нас есть следующее регулярное выражение:

let reg = /\d+/g;

Давайте будем последовательно вызывать наш метод для нашей строки:

let res1 = reg.exec(str); console.log(res1[0]); // 12 let res2 = reg.exec(str); console.log(res2[0]); // 34 let res3 = reg.exec(str); console.log(res3[0]); // 56

После трех вызовов, так как в нашей строке больше нет совпадений с регуляркой, то следующий вызов метода вернет null:

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

Такую особенность метода удобно использовать в цикле:

let str = '12 34 56'; let reg = /\d+/g; let res; while (res = reg.exec(str)) { console.log(res); // [12], [34], [56] }

Можно найти не только совпадение, но и разложить его по карманам:

let str = '12 34 56'; let reg = /(\d)(\d)/g; let res; while (res = reg.exec(str)) { console.log(res); // [12, 1, 2], [34, 3, 4], [56, 5, 6] }

Дана следующая строка:

let str = '12:37:57 15:48:58 17:59:59';

Найдите в ней все подстроки с временем и для каждого найденного разложите часы, минуты и секунды по карманам.

enru