Exec-metodi JavaScriptin säännöllisissä lausekkeissa

exec-metodi suorittaa haun merkkijonossa. Tuloksena palautetaan löydetty merkkijono-osa ja sen sieppaukset. Jokainen seuraava tämän metodin kutsu aloittaa haun siitä kohdasta, jossa edellinen löydetty merkkijono-osa päättyi.

Katsotaanpa esimerkkiä. Olkoon meillä seuraava merkkijono:

javascriptlet str = '12 34 56';

Olkoon meillä seuraava säännöllinen lauseke:

javascriptlet reg = /\d+/g;

Kutsutaan peräkkäin meidän metodia meidän merkkijonolle:

javascriptlet 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

Kolmen kutsun jälkeen, koska meidän merkkijonossa ei ole enää vastaavuuksia säännöllisen lausekkeen kanssa, seuraava metodin kutsu palauttaa null:

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

Tätä metodin piirrettä on kätevä käyttää silmukassa:

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

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

Voi löytää paitsi vastaavuuden, myös jakaa sen sieppauksiin:

javascriptlet 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] 
}
Задание 1

Annettu seuraava merkkijono:

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

Etsi siitä kaikki ajat sisältävät merkkijonot ja jokaiselle löydetylle jaa tunnit, minuutit ja sekunnit sieppauksiin.