JS實現HTML標籤轉義及反轉義

function HTMLDecode(text) { 
    var temp = document.createElement("div"); 
    temp.innerHTML = text; 
    var output = temp.innerText || temp.textContent; 
    temp = null; 
    return output; 
} 
var tagText = "<p><b>123&456</b></p>";
var encodeText = HTMLEncode(tagText);

注:火狐不支持innerText,須要使用 textContent 屬性,而IE早期版本不支持此屬性,爲了同時兼容IE及火狐,須要進行判斷操做.html

由於innerText(textContent)會獲取純文本內容,忽略html節點標籤,而innerHTML會顯示標籤內容,因此咱們先將需轉義的內容賦值給innerText(textContent),再獲取它的innerHTML屬性,這時獲取到的就是轉義後文本內容。 code

 同理,反轉義的方法爲先將轉義文本賦值給innerHTML,而後經過innerText(textContent)獲取轉義前的文本內容htm

function HTMLDecode(text) { 
    var temp = document.createElement("div"); 
    temp.innerHTML = text; 
    var output = temp.innerText || temp.textContent; 
    temp = null; 
    return output; 
} 
var tagText = "<p><b>123&456</b></p>";
var encodeText = HTMLEncode(tagText);
console.log(encodeText);//&lt;p&gt;&lt;b&gt;123&amp;456&lt;/b&gt;&lt;/p&gt;
console.log(HTMLDecode(encodeText)); //<p><b>123&456</b></p>
相關文章
相關標籤/搜索