ชุดตัวอักษรในนิพจน์ทั่วไปของ JavaScript
กลุ่มตัวอักษร \d และ \w ไม่
มีความยืดหยุ่นมากนัก แม้กระทั่งงานง่ายๆ
อย่าง ค้นหาตัวอักษรทั้งหมด แต่ไม่ใช่ตัวเลข -
ก็ไม่สามารถแก้ไขได้ด้วยกลุ่มเหล่านี้ สำหรับงานดังกล่าว
ควรใช้วงเล็บเหลี่ยม ซึ่งแสดงถึง
การดำเนินการ 'หรือ'
วงเล็บเหลี่ยมแทนที่ตัวอักษรเดียว
ใดๆ ก็ตามที่ระบุไว้ภายใน ตัวอย่างเช่น
แบบนี้: /x[abc]x/ - เรากำหนดว่า
ที่ขอบทั้งสองด้านต้องเป็นตัวอักษร x และตรงกลาง
- เป็นตัวอักษรเดียว: ไม่ว่า 'a', 'b',
หรือ 'c'
หลังจากวงเล็บเหลี่ยม คุณสามารถเขียนโอเปอเรเตอร์
การทำซ้ำได้ ตัวอย่างเช่น แบบนี้: /x[abc]+x/
- เรากำหนดว่าภายใน x สามารถมี
จำนวนตัวอักษร 'a', 'b'
และ 'c' เท่าใดก็ได้ - ในรูปแบบการผสมใดๆ
คุณไม่เพียงแต่สามารถระบุตัวอักษรได้ แต่ยังสามารถสร้าง
กลุ่มตัวอักษรได้ โดยการเขียนเครื่องหมายยัติภังค์ระหว่างตัวอักษรสองตัว
ตัวอย่างเช่น แบบนี้: [a-d] -
เราได้รับตัวอักษรทั้งหมดตั้งแต่ 'a' ถึง
'd'
ลองดูตัวอย่างกัน
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาดูเหมือนดังนี้:
ระหว่าง x เป็นตัวอักษรใดๆ ก็ตามตั้งแต่ 'a'
ถึง 'z':
let str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! ! x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาดูเหมือนดังนี้:
ระหว่าง x เป็นตัวอักษรใดๆ ก็ตามตั้งแต่ 'a'
ถึง 'k':
let str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! xmx x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาดูเหมือนดังนี้:
ระหว่าง x เป็นตัวอักษรใดๆ ก็ตามตั้งแต่ 'A'
ถึง 'Z':
let str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'xax ! xcx x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาดูเหมือนดังนี้:
ระหว่าง x เป็นตัวเลขใดๆ ก็ตามตั้งแต่ 0 ถึง 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'xax ! ! ! x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาดูเหมือนดังนี้:
ระหว่าง x เป็นตัวเลขใดๆ ก็ตามตั้งแต่ 3 ถึง 7:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'xax x1x ! ! x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาดูเหมือนดังนี้:
ระหว่าง x เป็นตัวอักษรใดๆ ก็ตามตั้งแต่ 'a'
ถึง 'z' หรือตัวเลขตั้งแต่ 1 ถึง 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! ! ! x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาดูเหมือนดังนี้:
ระหว่าง x เป็นตัวอักษรใดๆ ก็ตามตั้งแต่ 'a'
ถึง 'z' หรือตัวอักษรตั้งแต่ 'A' ถึง
'Z':
let str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! ! x5x x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาดูเหมือนดังนี้:
ระหว่าง x เป็นตัวอักษรใดๆ ก็ตามตั้งแต่ 'a'
ถึง 'z' หรือตัวเลข 1, 2:
let str = 'xax xbx x1x x2x x3x';
let res = str.replace(/x[a-z12]x/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! ! ! x3x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหาดูเหมือนดังนี้:
ระหว่าง x เป็นตัวอักษรตั้งแต่ 'a' ถึง 'z'
จำนวนตั้งแต่ 1 ขึ้นไป:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'xx ! ! ! x123x xa3x'
ตัวอย่าง
มาทำให้จำนวนตัวอักษรสามารถเป็นศูนย์ได้:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');
ผลลัพธ์ที่เขียนลงในตัวแปรจะเป็นดังนี้:
'! ! ! ! x123x xa3x'
งานฝึกฝน
กำหนดสตริง:
let str = 'aba aea aca aza axa';
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษร 'b',
'e' หรือ 'x'
กำหนดสตริง:
let str = 'a1a a3a a7a a9a aba';
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวเลขตั้งแต่ 3 ถึง 6
กำหนดสตริง:
let str = 'aba aea afa aha aga';
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรจาก a ถึง g
กำหนดสตริง:
let str = 'aba aea afa aha aga';
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรจาก a ถึง f และจาก j ถึง z
กำหนดสตริง:
let str = 'aAa aea aEa aJa a3a';
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรจาก a ถึง f และจาก A ถึง D
กำหนดสตริง:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก,
โดยไม่กระทบกับส่วนอื่น
กำหนดสตริง:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวพิมพ์ใหญ่, โดยไม่กระทบกับส่วนอื่น
กำหนดสตริง:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก
และตัวเลข, โดยไม่กระทบกับส่วนอื่น