Tôi đang viết một phần mở rộng của Chrome mà liên quan đến việc làm một rất nhiều của công việc sau: vệ sinh chuỗi có thể chứa các thẻ HTML, bằng cách chuyển đổi <
, >
và &
để <
, >
và &
, tương ứng.
(Nói cách khác, giống như PHP htmlspecialchars(str, ENT_NOQUOTES)
- tôi không nghĩ rằng thực sự cần thiết phải chuyển đổi các ký tự dấu ngoặc kép.)
Đây là chức năng nhanh nhất mà tôi tìm thấy cho đến nay:
function safe_tags(str) {
return str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') ;
}
Nhưng vẫn có độ trễ lớn khi tôi phải chạy vài nghìn chuỗi trong một lần.
Bất cứ ai có thể cải thiện điều này? Nó chủ yếu dành cho các chuỗi từ 10 đến 150 ký tự, nếu điều đó tạo ra sự khác biệt.
(Một ý tưởng của tôi là không bận tâm đến việc mã hóa dấu lớn hơn - liệu có bất kỳ mối nguy hiểm thực sự nào với điều đó không?)