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