ผมเขียนส่วนขยายของ Chrome ที่เกี่ยวข้องกับการทำมากของงานดังต่อไปนี้: ฆ่าเชื้อสตริงที่อาจมีแท็ก HTML โดยการแปลง<
, >
และ&
เพื่อ<
, >
และ&
ตามลำดับ
(กล่าวอีกนัยหนึ่งก็เหมือนกับของ PHP htmlspecialchars(str, ENT_NOQUOTES)
- ฉันไม่คิดว่าจะต้องมีการแปลงอักขระแบบ double-quote)
นี่เป็นฟังก์ชั่นที่เร็วที่สุดที่ฉันเคยพบ:
function safe_tags(str) {
return str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') ;
}
แต่ยังคงมีความล่าช้าอย่างมากเมื่อฉันต้องวิ่งสองสามพันสายผ่านมันในครั้งเดียว
ใครสามารถปรับปรุงเรื่องนี้ได้บ้าง? ส่วนใหญ่เป็นสตริงระหว่าง 10 ถึง 150 อักขระหากสิ่งนั้นสร้างความแตกต่าง
(ความคิดหนึ่งที่ฉันมีคือไม่ต้องกังวลกับการเข้ารหัสเครื่องหมายที่ใหญ่กว่า - จะมีอันตรายจริงหรือไม่)