การใช้ matchAll แบบ Global ใน Regular Expressions ของ JavaScript

เมธอด matchAll จะคืนค่าการจับคู่ทั้งหมด ในรูปแบบของ ออบเจ็กต์ที่สามารถวนซ้ำได้, โดยแต่ละองค์ประกอบ จะประกอบด้วยอาร์เรย์ของข้อความที่พบและกลุ่มจับ (capturing groups) เมธอดนี้สามารถเรียกใช้งานได้เฉพาะกับ modifier g

มาดูตัวอย่างกัน สมมติว่าเรามีสตริงต่อไปนี้:

javascriptlet str = '12 34 56';

มาหาคู่ตัวเลขทั้งหมดและแยก ตัวเลขแต่ละหลักออกเป็นกลุ่มจับ:

javascriptlet matches = str.matchAll(/(\d)(\d)/g);

มาวนซ้ำออบเจ็กต์ที่ได้ ด้วยลูปและแสดงผลการจับคู่ที่พบ:

javascriptfor (let match of matches) {
  console.log(match); // [12, 1, 2], [34, 3, 4], [56, 5, 6] 
}
Задание 1

กำหนดสตริงต่อไปนี้:

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

จงหาสตริงย่อยทั้งหมดที่แสดงเวลา และสำหรับแต่ละค่าที่พบ แยก ชั่วโมงและนาทีออกเป็นกลุ่มจับที่ต่างกัน

Задание 2

กำหนดสตริง:

javascriptlet str = 'site.ru sss site.com zzz site.net';

จงได้อาร์เรย์ของชื่อโดเมนจากสตริงนี้ โดยเก็บชื่อโดเมนและ ส่วนขยาย (zone) ของโดเมนไว้ในกลุ่มจับที่ต่างกัน