Η ιδιότητα lastIndex στις κανονικές εκφράσεις JavaScript

Μια κανονική έκφραση έχει την ιδιότητα lastIndex. Περιέχει τη θέση από την οποία θα ξεκινήσει την αναζήτηση η επόμενη κλήση της μεθόδου exec. Δηλαδή, σε κάθε νέα κλήση της μεθόδου αυτή η ιδιότητα θα αλλάζει την τιμή της. Ας δούμε ένα παράδειγμα:

javascriptlet str = '12 34 56';
let reg = /\d+/g;
console.log(reg.lastIndex); // αρχική τιμή 0

let res;
while (res = reg.exec(str)) {
  console.log(res); // [12], [34], [56]
  console.log(reg.lastIndex); // 2, 5, 8
}

Το πλεονέκτημα του lastIndex είναι ότι μπορείτε όχι μόνο να το διαβάσετε, αλλά και να το αλλάξετε, ξεκινώντας την αναζήτηση από μια δεδομένη θέση. Δείτε το παράδειγμα:

javascriptlet str = '12 34 56';

let reg = /\d+/g;
reg.lastIndex = 2;

let res = reg.exec(str)
console.log(res); // [34]
Задание 1

Δίνεται η ακόλουθη συμβολοσειρά:

javascriptlet str = '12:37 15:48 17:59';

Βρείτε όλες τις υποσυμβολοσειρές με ώρα, ξεκινώντας από τον πέμπτο χαρακτήρα.