คุณสมบัติ lastIndex ใน Regular Expressions ของ JavaScript

Regular Expression มีคุณสมบัติที่เรียกว่า lastIndex มันเก็บตำแหน่ง (index) ที่การค้นหาจะเริ่มต้นในการเรียกใช้เมธอด 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';

จงค้นหาสตริงย่อยทั้งหมดที่เป็นเวลา โดยเริ่มค้นหาจากตัวอักษรตัวที่ห้า