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ụ:
let 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ụ:
let str = '12 34 56';
let reg = /\d+/g;
reg.lastIndex = 2;
let res = reg.exec(str)
console.log(res); // [34]
Cho chuỗi sau:
let 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.