การลบเครื่องหมายอัญประกาศออกจากสตริง

JavaScript:
การลบเครื่องหมายอัญประกาศออกจากสตริง

วิธีการ:

ลองนึกภาพว่าคุณมีสตริงที่ห่อหุ้มด้วยเครื่องหมายอ้างอิงคู่ เช่น "\"Hello, World!\"" และคุณต้องการข้อความบริสุทธิ์ที่ไม่มีเครื่องหมายอ้างอิง นี่คือตัวอย่างโค้ด JavaScript เพื่อปลดปล่อยสตริงของคุณออกจากเครื่องกักขังเครื่องหมายอ้างอิง:

let quotedString = "\"Hello, World!\"";
let unquotedString = quotedString.replace(/^"|"$/g, '');
console.log(unquotedString); // ผลลัพธ์: Hello, World!

และถ้าคุณกำลังรับมือกับเครื่องหมายอ้างอิงชนิดเดี่ยว? เพียงแค่ปรับรูปแบบ regex นิดหน่อย:

let singleQuotedString = "'Hello, World!'";
let unquotedString = singleQuotedString.replace(/^'|'$/g, '');
console.log(unquotedString); // ผลลัพธ์: Hello, World!

หรือถ้าสตริงของคุณประกอบด้วยทั้งสองชนิด? ไม่เป็นไร:

let mixedQuotedString = "\"'Hello, World!'\"";
let unquotedString = mixedQuotedString.replace(/^["']|["']$/g, '');
console.log(unquotedString); // ผลลัพธ์: 'Hello, World!'

ลงลึก

ก่อนที่ JSON จะได้รับความนิยม การหลบหนีจากเครื่องหมายอ้างอิงเป็นเรื่องของการใช้ backslashes และเทคนิคต่างๆ ภาษาการเขียนโปรแกรมในยุคแรกๆ ไม่ได้รับการจัดการกับเครื่องหมายอ้างอิงอย่างดีเสมอไป ซึ่งหมายถึงต้องมีการจัดการสตริงด้วยมือเป็นจำนวนมาก ตอนนี้ ด้วยรูปแบบข้อมูลมาตรฐาน การลบเครื่องหมายอ้างอิงบ่อยครั้งเกี่ยวข้องกับการทำความสะอาดข้อมูลป้อนเข้าก่อนที่จะแปรรูปเป็น JSON หรือเก็บข้อความโดยไม่มีข้อขัดแย้งของรูปแบบ

ทางเลือกของ .replace()? แน่นอน! คุณสามารถแยกและรวมสตริงที่มีเครื่องหมายอ้างอิง, ใช้ slice หากคุณมั่นใจในตำแหน่งเครื่องหมายอ้างอิงของคุณ, หรือแม้กระทั่งใช้ regex match เพื่อดึงข้อความที่ต้องการออกมา ทุกอย่างขึ้นอยู่กับบริบท

แต่อย่าลืมเกี่ยวกับกรณีขอบ: เครื่องหมายอ้างอิงในเครื่องหมายอ้างอิง, เครื่องหมายอ้างอิงที่หลบหนี, และตัวละครระหว่างประเทศ คิดถึงสตริงของคุณเหมือนเป็นพื้นที่ที่มีข้อยกเว้นเป็นเหมือนสนามระเบิด และเดินอย่างระมัดระวัง เครื่องยนต์ JavaScript สมัยใหม่ได้รับการเพิ่มประสิทธิภาพเพื่อจัดการการดำเนินการ regex ได้อย่างมีประสิทธิภาพ ดังนั้นพวกมันมักจะเป็นตัวเลือกไป แต่มันเสมอคุ้มค่าที่จะตรวจสอบประสิทธิภาพสำหรับงานประมวลผลข้อมูลจำนวนมาก

ดูเพิ่มเติม

ขุดลึกเพิ่มเติมเกี่ยวกับการจัดการสตริงและ regex: