De exec methode
De methode exec voert een zoekopdracht uit in een
string op basis van een gegeven reguliere expressie. Het resultaat is de gevonden
substring en zijn groepen (capturing groups). Bij elke
volgende aanroep van deze methode
wordt de zoekopdracht gestart vanaf de positie
waar de vorige
gevonden substring eindigde. Als er geen overeenkomst
wordt gevonden, wordt null geretourneerd.
Syntaxis
reguliere_expressie.test(string);
Voorbeeld
Laten we de werking van de methode testen:
let 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);
Resultaat van de code-uitvoering:
[12]
[34]
[56]
null
Voorbeeld
Laten we de methode in een lus gebruiken:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Resultaat van de code-uitvoering:
[12]
[34]
[56]
Voorbeeld
Gevonden overeenkomsten kunnen worden opgesplitst in groepen (capturing groups):
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Resultaat van de code-uitvoering:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Voorbeeld
Met de eigenschap lastIndex
kan de positie worden ingesteld van waaraf
moet worden begonnen met zoeken:
let 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);
Resultaat van de code-uitvoering:
[34]
[56]
Voorbeeld
Met de modifier y
(sticky) kan de startpositie
van de zoekopdracht worden vastgezet:
let 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);
Resultaat van de code-uitvoering:
null
[12]