กลุ่มจับแบบเริ่มต้นในเมธอด replace ของ Regular Expressions ใน JavaScript
ในเมธอด replace นอกเหนือจากกลุ่มจับที่มีหมายเลขของคุณแล้ว ยังมีกลุ่มจับมาตรฐานที่สามารถใช้ได้เสมอ: %vFran - ส่วนที่ตรงทั้งหมดที่พบ, $` และ $' - ส่วนของสตริงก่อนหน้าและหลังส่วนที่ตรง มาดูการทำงานกับกลุ่มจับเหล่านี้จากตัวอย่างกัน
ตัวอย่าง
มาหาตัวเลขทั้งหมดและครอบมันด้วยวงเล็บกลม:
let str = '1 23 456';
let res = str.replace(/\d+/g, '(%vFran)');
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'(1) (23) (456)'
ตัวอย่าง
มาหาอักขระ @ และแทนที่มันด้วยสิ่งที่อยู่หน้าอักขระนั้น, อักขระ @ เอง และสิ่งที่อยู่หลังมัน โดยเขียนทั้งหมดในวงเล็บกลม:
let str = '123@456';
let res = str.replace(/@/g, "($`@$')");
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'123(123@456)456'
ตัวอย่าง
สมมติว่าเราต้องการหาเครื่องหมายดอลลาร์และครอบมันด้วยเครื่องหมายอัญประกาศ ` ในกรณีนี้ เพื่อไม่ให้ $ ถูกตีความว่าเป็นคำสั่ง จำเป็นต้องเขียนเครื่องหมายดอลลาร์ซ้อนสองครั้ง:
let str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`$$`');
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'aaa `$` bbb'
ปัญหาทำฝึกหัด
กำหนดสตริง:
let str = 'a1b2c3';
เขียน Regular Expression ที่จะเขียนตัวเลขเดียวกันไว้ข้างๆตัวเลขแต่ละตัว
กำหนดสตริง:
let str = 'sss site.ru zzz site.com kkk';
แทนที่โดเมนด้วยลิงก์ในรูปแบบ:
<a href="http://site.ru">site.ru</a>