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:
- Mozilla Developer Network เกี่ยวกับ String.replace(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
- Regex101 เพื่อทดสอบรูปแบบ regex ของคุณ: https://regex101.com/
- JSON.org เพื่อเข้าใจว่าทำไมเราต้องจัดการกับเครื่องหมายอ้างอิงมากมายในการพัฒนาเว็บสมัยใหม่: http://json.org/