亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將HTML標記轉義為HTML實體的最快方法?

將HTML標記轉義為HTML實體的最快方法?

將HTML標記轉義為HTML實體的最快方法?我正在編寫一個Chrome擴展,其中包括羅得執行以下任務:對以下字符串進行清理強權通過轉換包含HTML標記<, >和&到&lt;, &gt;和&amp;分別。(換句話說,與PHP的htmlspecialchars(str, ENT_NOQUOTES)-我不認為真的需要轉換雙引號字符。)這是我迄今發現的最快的功能:function safe_tags(str) {     return str.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;') ;}但是,當我一次運行幾千個字符串時,仍然有一個很大的滯后。有人能在這方面有所改進嗎?它主要用于10到150個字符之間的字符串,如果這有區別的話。(我的一個想法是,不要費心去編碼比符號更大的東西-這樣做會有什么真正的危險嗎?)
查看完整描述

3 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

這里有一種你可以做到的方法:

var escape = document.createElement('textarea');function escapeHTML(html) {
    escape.textContent = html;
    return escape.innerHTML;}function unescapeHTML(html) {
    escape.innerHTML = html;
    return escape.textContent;}

這是一個演示。


查看完整回答
反對 回復 2019-07-04
?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

Martijn的方法作為一個原型函數:

String.prototype.escape = function() {
    var tagsToReplace = {
        '&': '&amp;',
        '<': '&lt;',
        '>': '&gt;'
    };
    return this.replace(/[&<>]/g, function(tag) {
        return tagsToReplace[tag] || tag;
    });};var a = "<abc>";var b = a.escape(); // "&lt;abc&gt;"


查看完整回答
反對 回復 2019-07-04
  • 3 回答
  • 0 關注
  • 680 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號