Az exec metódus
Az exec metódus
reguláris kifejezéssel végzett keresést hajt végre egy stringben. Az eredmény a megtalált
részstring és annak zárójelei (capturing groups). Ezenkívül minden
további hívása ennek a metódusnak
onnan kezdi a keresést, ahol az előző
megtalált részstring végzett. Ha
nincs egyezés - null tér vissza.
Szintaxis
reguláris_kifejezés.test(string);
Példa
Ellenőrizzük a metódus működését:
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);
A kód végrehajtásának eredménye:
[12]
[34]
[56]
null
Példa
Használjuk a metódust egy ciklusban:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
A kód végrehajtásának eredménye:
[12]
[34]
[56]
Példa
A megtalált egyezéseket szétbonthatjuk zárójelek (capturing groups) szerint:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
A kód végrehajtásának eredménye:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Példa
A lastIndex tulajdonság
segítségével beállítható a pozíció, ahonnan
a keresést kezdeni kell:
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);
A kód végrehajtásának eredménye:
[34]
[56]
Példa
A y módosító
segítségével rögzíthető a keresés
kezdő pozíciója:
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);
A kód végrehajtásának eredménye:
null
[12]
Lásd még
-
a
testmetódus,
amely ellenőriz egy stringet -
a
matchmetódus,
amely egyezéseket keres egy stringben -
a
matchAllmetódus,
amely minden egyezést megkeres egy stringben -
a
replacemetódus,
amely keresést és cserét hajt végre -
a
searchmetódus,
amely keresést hajt végre -
a
splitmetódus,
amely feloszt egy stringet