⊗jsSpREME 124 of 294 menu

วิธีการ exec ใน Regular Expression ของ JavaScript

เมธอด exec ดำเนินการค้นหาตาม สตริง ผลลัพธ์ที่ได้คือสตริงย่อยที่พบ และกลุ่มที่จับได้ (capturing groups) นอกจากนี้ การเรียกใช้เมธอดนี้ในครั้งต่อๆ ไป จะเริ่มค้นหาจากตำแหน่ง ที่สตริงย่อยที่พบในครั้งก่อนหน้า สิ้นสุดลง

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

let str = '12 34 56';

สมมติว่าเรามี Regular Expression ต่อไปนี้:

let reg = /\d+/g;

ลองเรียกใช้เมธอดของเราตามลำดับ สำหรับสตริงของเรา:

let res1 = reg.exec(str); console.log(res1[0]); // 12 let res2 = reg.exec(str); console.log(res2[0]); // 34 let res3 = reg.exec(str); console.log(res3[0]); // 56

หลังจากการเรียกใช้สามครั้ง เนื่องจากใน สตริงของเราไม่มีส่วนที่ตรงกับ Regular Expression อีกแล้ว การเรียกใช้เมธอดครั้งต่อไปจะคืนค่า null:

let res4 = reg.exec(str); console.log(res4); // null

คุณลักษณะเฉพาะของเมธอดนี้สะดวกต่อการนำไป ใช้งานในลูป:

let str = '12 34 56'; let reg = /\d+/g; let res; while (res = reg.exec(str)) { console.log(res); // [12], [34], [56] }

ไม่เพียงแต่ค้นหาส่วนที่ตรงกันได้เท่านั้น แต่ยังสามารถแยกส่วนนั้นออกเป็นกลุ่ม (capturing groups) ได้:

let str = '12 34 56'; let reg = /(\d)(\d)/g; let res; while (res = reg.exec(str)) { console.log(res); // [12, 1, 2], [34, 3, 4], [56, 5, 6] }

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

let str = '12:37:57 15:48:58 17:59:59';

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

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ