⊗jsSpREHHy 110 of 294 menu

ยัติภังค์ภายในเซ็ตใน Regular Expression ของ JavaScript

ยัติภังค์ - ก็เป็นตัวอักษรพิเศษภายใน [ ] (แต่ถ้าอยู่นอก - ไม่ใช่) หากคุณต้องการยัติภังค์เองเป็นตัวอักษร - ให้วางมันไว้ตำแหน่งที่ มัน จะไม่ถูกตีความว่าเป็นตัวแบ่งกลุ่ม

ทำไมนี่สำคัญ: คุณอาจสร้างกลุ่มตัวอักษรขึ้นมาโดยไม่รู้ตัว ตัวอย่างเช่น แบบนี้ - '[:-@]' - คุณคิดว่า เลือกเครื่องหมายโคลอน ยัติภังค์ และเครื่องหมาย @ แต่ใน ความเป็นจริงแล้ว กลับกลายเป็นกลุ่มตัวอักษรระหว่าง : และ @ กลุ่มนี้ประกอบด้วย ตัวอักษรต่อไปนี้: ? < = > : ;

พวกมันมาจากไหน? จากตาราง ASCII - เครื่องหมายโคลอนมีหมายเลขน้อยกว่าเครื่องหมาย @ - จึงกลายเป็นกลุ่ม นั่นคือทุกกลุ่ม เกิดขึ้นตามตาราง ASCII (หากต้องการ ก็สามารถใช้ประโยชน์จากเรื่องนี้ได้)

วิธีจัดการกับเรื่องนี้: วางตัวอักษรยัติภังค์ ในตำแหน่งที่แน่ใจว่าจะไม่ถูกตีความเป็น ตัวอักษรกลุ่ม เช่น ที่จุดเริ่มต้นหรือจุดสิ้นสุด (นั่นคือหลัง [หรือก่อน ])

คุณยังสามารถ escape ยัติภังค์ได้ - แล้ว มันก็จะหมายถึงตัวมันเองโดยไม่ขึ้นกับ ตำแหน่ง ตัวอย่างเช่น แทนที่จะเขียน [:-@] ก็ให้เขียน [:\-@] - และจะไม่มีกลุ่มอีกต่อไป แต่ จะมีสามตัวอักษร - เครื่องหมายโคลอน ยัติภังค์ และเครื่องหมาย @ @

ตัวอย่าง

ในตัวอย่างถัดไป แพทเทิร์นการค้นหาคือ: เลข 1 ตามด้วยตัวอักษรตั้งแต่ 'a' ถึง 'z' ตามด้วยเลข 2:

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[a-z]2/g, '!');

ผลลัพธ์ที่เก็บในตัวแปรจะเป็นดังนี้:

'! 1-2 ! !'

ตัวอย่าง

ตอนนี้เรามา escape ยัติภังค์กัน ผลลัพธ์ แพทเทิร์นการค้นหาคือ: เลข 1 ตามด้วย ตัวอักษร 'a' หรือยัติภังค์ หรือตัวอักษร 'z' ตามด้วยเลข 2:

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[a\-z]2/g, '!');

ผลลัพธ์ที่เก็บในตัวแปรจะเป็นดังนี้:

'! ! 1c2 !'

ตัวอย่าง

คุณสามารถย้ายตำแหน่งยัติภังค์ได้เลยโดยไม่ต้อง escape:

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[az-]2/g, '!');

ผลลัพธ์ที่เก็บในตัวแปรจะเป็นดังนี้:

'! ! 1c2 !'

ตัวอย่าง

ในตัวอย่างถัดไป แพทเทิร์นการค้นหาคือ: ตัวอักษรแรก - คือตัวอักษรพิมพ์เล็กหรือ ยัติภังค์ '-' ตามด้วยตัวอักษร 'x' สองตัว:

let str = 'axx Axx -xx @xx'; let res = str.replace(/[a-z-]xx/g, '!');

ผลลัพธ์ที่เก็บในตัวแปรจะเป็นดังนี้:

'! Axx ! @xx'

ตัวอย่าง

ในตัวอย่างถัดไป แพทเทิร์นการค้นหาคือ: ตัวอักษรแรก - คือตัวอักษรพิมพ์เล็ก พิมพ์ใหญ่ หรือยัติภังค์ '-' ตามด้วยตัวอักษร 'x' สองตัว:

let str = 'axx Axx -xx @xx'; let res = str.replace(/[a-zA-Z-]xx/g, '!');

ผลลัพธ์ที่เก็บในตัวแปรจะเป็นดังนี้:

'! ! ! @xx'

ตัวอย่าง

คุณสามารถวางยัติภังค์ระหว่างสองกลุ่ม - ที่นั่นมันแน่นอนว่าจะไม่สร้างกลุ่มเพิ่มขึ้นมาอีก:

let str = 'axx 9xx -xx @xx'; let res = str.replace(/[a-z-0-9]xx/g, '!');

ผลลัพธ์ที่เก็บในตัวแปรจะเป็นดังนี้:

'! ! ! @xx'

ปัญหาประยุกต์

กำหนดสตริง:

let str = 'xaz xBz xcz x-z x@z';

ค้นหาทุกสตริงตามแพทเทิร์นต่อไปนี้: ตัวอักษร 'x' ตามด้วยตัวอักษรพิมพ์ใหญ่หรือพิมพ์เล็ก หรือยัติภังค์ ตามด้วยตัวอักษร 'z'

กำหนดสตริง:

let str = 'xaz x$z x-z xcz x+z x%z x*z';

ค้นหาทุกสตริงตามแพทเทิร์นต่อไปนี้: ตัวอักษร 'x' ตามด้วยเครื่องหมายดอลลาร์ หรือ ยัติภังค์ หรือเครื่องหมายบวก ตามด้วยตัวอักษร 'z'

ไทย
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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ