Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธีแทนที่สตริงด้วย Regular Expression ใน JavaScript

ใช้เมธอด String.prototype.replace() ร่วมกับ Regular Expression เพื่อแทนที่สตริงใน JavaScript

ไวยากรณ์

str.replace(regexp|substr, newSubstr|function)

ตัวอย่าง

<html>
  <head>
    <script>
      var str = "Welcome to Tutorialspoint";
      document.write(str);
      // แทนที่ tutorialspoint (ไม่สนใจตัวพิมพ์เล็ก/ใหญ่) ด้วย Qries
      var res = str.replace(/tutorialspoint/i, "Qries");
      document.write("<br>" + res);
    </script>
  </head>
  </body>
</html>

ผลลัพธ์

Welcome to Tutorialspoint
Welcome to Qries

รายละเอียด Regular Expression Flags

Flagความหมาย
gGlobal - แทนที่ทุกครั้งที่เจอ (ไม่ใช่แค่ครั้งแรก)
iCase-insensitive - ไม่สนใจตัวพิมพ์เล็ก/ใหญ่
mMultiline - ^ และ $ ทำงานกับแต่ละบรรทัด

ตัวอย่างเพิ่มเติม

var str = "apple, Apple, APPLE";

// แทนที่ครั้งแรกเท่านั้น
str.replace(/apple/, "orange"); // "orange, Apple, APPLE"

// แทนที่ทั้งหมด (global flag)
str.replace(/apple/gi, "orange"); // "orange, orange, orange"

// ใช้ฟังก์ชันเป็น replacement
str.replace(/apple/gi, match => match.toUpperCase()); // "APPLE, APPLE, APPLE"

// ใช้กลุ่ม (capture groups)
"2023-12-25".replace(/(\d{4})-(\d{2})-(\d{2})/, "$3/$2/$1"); // "25/12/2023"

หมายเหตุ: replace() ไม่เปลี่ยนสตริงต้นฉบับ (strings are immutable) จะคืนสตริงใหม่