De exec-methode in JavaScript reguliere expressies
De methode exec voert een zoekopdracht uit in een
string. Het resultaat is de gevonden
substring en zijn groepen. Bij elke
volgende aanroep van deze methode
begint de zoekopdracht vanaf de plek
waar de vorige gevonden substring
eindigde.
Laten we een voorbeeld bekijken. Stel we hebben de volgende string:
javascriptlet str = '12 34 56';
Stel we hebben de volgende reguliere expressie:
javascriptlet reg = /\d+/g;
Laten we sequentieel onze methode voor onze string aanroepen:
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
Na drie aanroepen, omdat er in onze
string geen verdere matches met de reguliere expressie zijn,
zal de volgende aanroep van de methode
null teruggeven:
javascriptlet res4 = reg.exec(str);
console.log(res4); // null
Deze eigenschap van de methode is handig om te gebruiken in een lus:
javascriptlet str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Je kunt niet alleen de match vinden, maar deze ook ontbinden in groepen:
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]
}
Gegeven de volgende string:
javascriptlet str = '12:37:57 15:48:58 17:59:59';
Vind hierin alle substrings met tijd en ontbind voor elke gevonden match uren, minuten en seconden in groepen.