เครื่องหมายหมวกภายในเซ็ตใน Regular Expressions ของ JavaScript

ดังที่คุณทราบ เครื่องหมายหมวกภายใน [ ] จะทำให้เกิด การนิเสธ หากเขียนไว้ที่ตอนต้นของวงเล็บ ซึ่งหมายความว่ามันเป็นอักขระพิเศษภายใน วงเล็บเหล่านี้ เพื่อให้ได้เครื่องหมายหมวกเป็นอักขระธรรมดา จำเป็นต้องทำการ escape หรือย้ายมันออกจาก ตำแหน่งแรก

ตัวอย่าง

ในตัวอย่างถัดไป รูปแบบการค้นหาคือ: อักขระตัวแรกคือทุกอย่างยกเว้น 'd', ตามด้วยตัวอักษรสองตัว 'x'

javascriptlet str = 'axx bxx ^xx dxx';
let res = str.replace(/[^d]xx/g, '!');

ผลลัพธ์ที่ถูกบันทึกลงในตัวแปรคือ:

javascript'! ! ! dxx'

ตัวอย่าง

แต่ตอนนี้รูปแบบการค้นหาคือ: อักขระตัวแรก คือ 'd' หรือ '^', ตามด้วย ตัวอักษรสองตัว 'x':

javascriptlet str = 'axx bxx ^xx dxx';
let res = str.replace(/[d^]xx/g, '!');

ผลลัพธ์ที่ถูกบันทึกลงในตัวแปรคือ:

javascript'axx bxx ! !'

ตัวอย่าง

คุณไม่จำเป็นต้องย้ายเครื่องหมายหมวกออกจากตำแหน่งแรก, เพียงแค่ทำการ escape ด้วย backslash และมันจะหมายถึงตัวมันเอง:

javascriptlet str = 'axx bxx ^xx dxx';
let res = str.replace(/[\^d]xx/g, '!');

ผลลัพธ์ที่ถูกบันทึกลงในตัวแปรคือ:

javascript'axx bxx ! !'

โจทย์ฝึกปฏิบัติ

Задание 1

กำหนดสตริง:

javascriptlet str = '^xx axx ^zz bkk @ss';

เขียน regular expression ที่จะค้นหาสตริง ตามรูปแบบ: เครื่องหมายหมวกหรือเครื่องหมาย @ แล้ว ตามด้วยตัวอักษรละตินสองตัว

Задание 2

กำหนดสตริง:

javascriptlet str = '^xx axx ^zz bkk @ss';

เขียน regular expression ที่จะค้นหาสตริง ตามรูปแบบ: ไม่ใช่เครื่องหมายหมวกและไม่ใช่เครื่องหมาย @ แล้ว ตามด้วยตัวอักษรละตินสองตัว

Задание 3

กำหนดสตริง:

javascriptlet str = '^xx axx ^zz bkk';

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