เครื่องหมายหมวกภายในเซ็ตใน Regular Expressions ของ JavaScript
ดังที่คุณทราบ เครื่องหมายหมวกภายใน [ ] จะทำให้เกิด
การนิเสธ หากเขียนไว้ที่ตอนต้นของวงเล็บ
ซึ่งหมายความว่ามันเป็นอักขระพิเศษภายใน
วงเล็บเหล่านี้ เพื่อให้ได้เครื่องหมายหมวกเป็นอักขระธรรมดา
จำเป็นต้องทำการ escape หรือย้ายมันออกจาก
ตำแหน่งแรก
ตัวอย่าง
ในตัวอย่างถัดไป รูปแบบการค้นหาคือ:
อักขระตัวแรกคือทุกอย่างยกเว้น 'd',
ตามด้วยตัวอักษรสองตัว 'x'
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[^d]xx/g, '!');
ผลลัพธ์ที่ถูกบันทึกลงในตัวแปรคือ:
'! ! ! dxx'
ตัวอย่าง
แต่ตอนนี้รูปแบบการค้นหาคือ: อักขระตัวแรก
คือ 'd' หรือ '^', ตามด้วย
ตัวอักษรสองตัว 'x':
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[d^]xx/g, '!');
ผลลัพธ์ที่ถูกบันทึกลงในตัวแปรคือ:
'axx bxx ! !'
ตัวอย่าง
คุณไม่จำเป็นต้องย้ายเครื่องหมายหมวกออกจากตำแหน่งแรก, เพียงแค่ทำการ escape ด้วย backslash และมันจะหมายถึงตัวมันเอง:
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[\^d]xx/g, '!');
ผลลัพธ์ที่ถูกบันทึกลงในตัวแปรคือ:
'axx bxx ! !'
โจทย์ฝึกปฏิบัติ
กำหนดสตริง:
let str = '^xx axx ^zz bkk @ss';
เขียน regular expression ที่จะค้นหาสตริง ตามรูปแบบ: เครื่องหมายหมวกหรือเครื่องหมาย @ แล้ว ตามด้วยตัวอักษรละตินสองตัว
กำหนดสตริง:
let str = '^xx axx ^zz bkk @ss';
เขียน regular expression ที่จะค้นหาสตริง ตามรูปแบบ: ไม่ใช่เครื่องหมายหมวกและไม่ใช่เครื่องหมาย @ แล้ว ตามด้วยตัวอักษรละตินสองตัว
กำหนดสตริง:
let str = '^xx axx ^zz bkk';
เขียน regular expression ที่จะค้นหาสตริง ตามรูปแบบ: ไม่ใช่เครื่องหมายหมวกและไม่ใช่ช่องว่าง แล้ว ตามด้วยตัวอักษรละตินสองตัว