RegEx-in exec metodu JavaScript
exec metodu setr uzre
axtaris edir. Netice olaraq tapilan
subsetr ve onun qruplari qaytarilir.
Bununla yanaşı, bu metodun her sonrakı
çağırışı axtarisa elaqedar olaraq
evvelki tapılan subsetrin bitdiyi
yerden baslayacaq.
Gelin misala baxaq. Bu setrimiz olsun:
javascriptlet str = '12 34 56';
Bu regulyar ifademiz olsun:
javascriptlet reg = /\d+/g;
Gelin metodumuzu setrimiz ucun ardıcıl olaraq çağıraq:
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
Uc çağırışdan sonra, setrimizde
regulyarla uyğunluq olmadığı üçün,
metodun sonrakı çağırışı
null qaytaracaq:
javascriptlet res4 = reg.exec(str);
console.log(res4); // null
Metodun bu xüsusiyyetini dövrdə istifadə etmek elverişlidir:
javascriptlet str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Yalnız uyğunluğu tapmaq deyil, hem de onu qruplara ayırmaq olar:
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
Bu set verilmişdir:
javascriptlet str = '12:37:57 15:48:58 17:59:59';
Onda vaxt olan butun subsetrleri tapın ve her biri ucun saat, deqiqe ve saniyeleri qruplara ayırın.