Thuộc tính lastIndex trong biểu thức chính quy JavaScript

Biểu thức chính quy có một thuộc tính lastIndex. Nó chứa vị trí mà từ đó lần gọi tiếp theo của phương thức exec sẽ bắt đầu tìm kiếm. Nghĩa là với mỗi lần gọi mới của phương thức thuộc tính này sẽ thay đổi giá trị của nó. Hãy xem ví dụ:

javascriptlet str = '12 34 56';
let reg = /\d+/g;
console.log(reg.lastIndex); // giá trị ban đầu 0

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

Ưu điểm của lastIndex là nó không chỉ có thể đọc được, mà còn có thể thay đổi, bắt đầu tìm kiếm từ một vị trí được chỉ định. Xem ví dụ:

javascriptlet str = '12 34 56';

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

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

Cho chuỗi sau:

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

Tìm tất cả các chuỗi con chứa thời gian trong nó, bắt đầu từ ký tự thứ năm.