กลุ่มจับแบบเริ่มต้นในเมธอด replace ของ Regular Expressions ใน JavaScript

ในเมธอด replace นอกเหนือจากกลุ่มจับที่มีหมายเลขของคุณแล้ว ยังมีกลุ่มจับมาตรฐานที่สามารถใช้ได้เสมอ: %vFran - ส่วนที่ตรงทั้งหมดที่พบ, $` และ $' - ส่วนของสตริงก่อนหน้าและหลังส่วนที่ตรง มาดูการทำงานกับกลุ่มจับเหล่านี้จากตัวอย่างกัน

ตัวอย่าง

มาหาตัวเลขทั้งหมดและครอบมันด้วยวงเล็บกลม:

javascriptlet str = '1 23 456';
let res = str.replace(/\d+/g, '(%vFran)');

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

javascript'(1) (23) (456)'

ตัวอย่าง

มาหาอักขระ @ และแทนที่มันด้วยสิ่งที่อยู่หน้าอักขระนั้น, อักขระ @ เอง และสิ่งที่อยู่หลังมัน โดยเขียนทั้งหมดในวงเล็บกลม:

javascriptlet str = '123@456';
let res = str.replace(/@/g, "($`@$')");

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

javascript'123(123@456)456'

ตัวอย่าง

สมมติว่าเราต้องการหาเครื่องหมายดอลลาร์และครอบมันด้วยเครื่องหมายอัญประกาศ ` ในกรณีนี้ เพื่อไม่ให้ $ ถูกตีความว่าเป็นคำสั่ง จำเป็นต้องเขียนเครื่องหมายดอลลาร์ซ้อนสองครั้ง:

javascriptlet str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`$$`');

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

javascript'aaa `$` bbb'

ปัญหาทำฝึกหัด

Задание 1

กำหนดสตริง:

javascriptlet str = 'a1b2c3';

เขียน Regular Expression ที่จะเขียนตัวเลขเดียวกันไว้ข้างๆตัวเลขแต่ละตัว

Задание 2

กำหนดสตริง:

javascriptlet str = 'sss site.ru zzz site.com kkk';

แทนที่โดเมนด้วยลิงก์ในรูปแบบ:

html<a href="http://site.ru">site.ru</a>