Η ιδιότητα lastIndex στις κανονικές εκφράσεις JavaScript
Μια κανονική έκφραση έχει την ιδιότητα
lastIndex. Περιέχει τη θέση
από την οποία θα ξεκινήσει την αναζήτηση η επόμενη
κλήση της μεθόδου exec.
Δηλαδή, σε κάθε νέα κλήση της μεθόδου
αυτή η ιδιότητα θα αλλάζει την τιμή της.
Ας δούμε ένα παράδειγμα:
let 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 είναι ότι
μπορείτε όχι μόνο να το διαβάσετε, αλλά και να το
αλλάξετε, ξεκινώντας την αναζήτηση από μια δεδομένη
θέση. Δείτε το παράδειγμα:
let str = '12 34 56';
let reg = /\d+/g;
reg.lastIndex = 2;
let res = reg.exec(str)
console.log(res); // [34]
Δίνεται η ακόλουθη συμβολοσειρά:
let str = '12:37 15:48 17:59';
Βρείτε όλες τις υποσυμβολοσειρές με ώρα, ξεκινώντας από τον πέμπτο χαρακτήρα.