การลบตัวอักษรที่ตรงกับรูปแบบ

JavaScript:
การลบตัวอักษรที่ตรงกับรูปแบบ

วิธีการ:

ใช้ replace() ร่วมกับ regular expression ธง g จะทำการแทนที่ทุกการจับคู่, ไม่ใช่เพียงครั้งแรกเท่านั้น

let message = "S0m3 messy-string_with! อักขระที่ไม่ต้องการ.";
let cleanMessage = message.replace(/[0-9_!-]/g, '');
console.log(cleanMessage); // ผลลัพธ์: "Sm messystringwith อักขระที่ไม่ต้องการ."

ขุดลึก

JavaScript ใช้ regular expressions (RegExp) สำหรับการจับคู่แบบแผนมานานแล้ว ฟังก์ชัน replace() เป็นตัวเลือกหลักสำหรับการแก้ไขสตริงตั้งแต่เริ่มต้นของภาษา มีทางเลือกอื่นๆ เช่น split() และ join() หรือการใช้ลูปในการสร้างสตริงใหม่ แต่ไม่สะดวกเท่า

นี่คือการอธิบายแยกส่วน:

  • ใช้ replace() สำหรับการแก้ไขแบบบรรทัดเดียวที่ง่ายดาย
  • Regular expressions มีความสามารถในการจับคู่แบบแผนที่ยอดเยี่ยม
  • ระวังประสิทธิภาพของ RegExp ในลูปที่แน่นหรือสตริงขนาดใหญ่

คำแนะนำเกี่ยวกับปฏิบัติการสมัยใหม่: แบบแผนเช่น /[^a-z]/gi จะลบทุกอย่างที่ไม่ใช่ตัวอักษร, โดยเคารพต่อความไม่สำคัญของตัวพิมพ์เล็กหรือใหญ่ด้วยธง i การนำเสนอ template literals ใน ECMAScript 2015 ทำให้การแทนที่ที่ซับซ้อนง่ายขึ้น, เพิ่มความสามารถในการอ่าน

Regular expressions ยังทำให้บางโปรแกรมเมอร์รู้สึกหวาดกลัวเนื่องจากความซับซ้อนของไวยากรณ์ อย่างไรก็ตาม ด้วยการพัฒนาของ JavaScript สมัยใหม่, เครื่องมือและวิธีการเช่นฟังก์ชันการจัดการสตริง (trim(), padStart(), padEnd() ฯลฯ) มีให้เพื่อทำให้งานปกติง่ายขึ้น อาจจะไม่ต้องใช้ regex

ดูเพิ่มเติม