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:
let str = '12 34 56';
Stel we hebben de volgende reguliere expressie:
let reg = /\d+/g;
Laten we sequentieel onze methode voor onze string aanroepen:
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
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:
let res4 = reg.exec(str);
console.log(res4); // null
Deze eigenschap van de methode is handig om te gebruiken in een lus:
let 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:
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]
}
Gegeven de volgende string:
let 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.