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