คำสั่ง 'หรือ' ใน Regular Expression JavaScript
ในบทเรียนนี้เราจะวิเคราะห์คำสั่ง
'|' ซึ่งเป็นรูปแบบ
ที่ทรงพลังกว่าของ 'หรือ' เมื่อเทียบกับ
คำสั่ง [ ] คำสั่งนี้ช่วยให้
แบ่ง regular expression เป็นหลายส่วนได้
โดยสิ่งที่ค้นหาอาจตรงกับส่วนหนึ่ง
ของ regular expression หรืออีกส่วนหนึ่ง มาดู
ตัวอย่างกัน
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาคือ: ตัวอักษร
'a' สามตัว หรือตัวอักษร 'b' สามตัว:
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! abb'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาคือ: ตัวอักษร
'a' สามตัว หรือตัวอักษร 'b'
ตั้งแต่ 1 ตัวขึ้นไป:
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! ! ! axx'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาคือ: ตัวอักษร หนึ่งตัวขึ้นไป หรือตัวเลขสามตัว:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! ! 1 12 !'
ตัวอย่าง
สัญลักษณ์ | สามารถแบ่ง regular expression ไม่ได้แค่เป็นสองส่วน แต่เป็นกี่ส่วนก็ได้:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! ! ddd'
ตัวอย่าง
หากสัญลักษณ์ | อยู่ภายในวงเล็บ
คำสั่ง 'หรือ' จะทำงานเฉพาะภายใน
วงเล็บนั้นเท่านั้น
ตัวอย่าง ลองค้นหาสตริงตาม
รูปแบบต่อไปนี้: ที่เริ่มต้นด้วย 'a',
หรือ 'b' หนึ่งครั้งหรือมากกว่า ตามด้วย
ตัวอักษร 'x' สองตัว:
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! ! exx'
โจทย์ฝึกปฏิบัติ
กำหนดสตริง:
let str = 'aeeea aeea aea axa axxa axxxa';
เขียน regular expression ที่ค้นหาสตริง
ตามรูปแบบ: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างนั้น - เป็นตัวอักษร 'e' จำนวนเท่าใดก็ได้ หรือตัวอักษร 'x' จำนวนเท่าใดก็ได้
กำหนดสตริง:
let str = 'aeeea aeea aea axa axxa axxxa';
เขียน regular expression ที่ค้นหาสตริง
ตามรูปแบบ: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างนั้น - เป็นตัวอักษร 'e' สองครั้ง
หรือตัวอักษร 'x' จำนวนเท่าใดก็ได้