2010-11-15 55 views
1

我需要HTML編碼字符,如我的輸入是<test>我的預期輸出是&lt;test&gt;轉義HTML字符

我該怎麼做?

+0

我試圖格式化您的代碼,但不確定結果是否是預期的?! – jensgram 2010-11-15 11:21:32

+0

是的,請澄清你的問題。 – 2010-11-15 11:23:27

+0

我希望html enocode .. like <等於&lt;&gt;等於&gt – jeny 2010-11-15 11:29:54

回答

0

用htmlspecialchars()和做自己的str_replace()函數的HTML註釋

+0

我也沒有注意到'javascript'標籤:) – jensgram 2010-11-15 11:24:19

2
var encoded = htmlEncode('<test>'); // returns "&lt;test&gt;" 

// ... 

function htmlEncode(str) { 
    var div = document.createElement('div'); 
    var txt = document.createTextNode(str); 
    div.appendChild(txt); 
    return div.innerHTML; 
} 
1

Encoder.js

  • htmlDecode:解碼HTML編碼的文本 到原來的狀態。
  • htmlEncode:將HTML編碼爲 數字或HTML實體。這是由EncodeType 屬性確定的 。

HTML對來自輸入元素的文本進行編碼。這將防止雙重編碼。

var encoded = Encoder.htmlEncode(document.getElementById('input')); 

爲了編碼,但可以允許雙編碼,這意味着任何現有的實體,如&將被轉換爲&安培;

var dblEncoded = Encoder.htmlEncode(document.getElementById('input'),true); 
+0

'escape'和'unescape'與HTML編碼沒有任何關係。 – LukeH 2010-11-15 11:34:45

0
function simpleEscape(str) { 
    return str.replace('<', '&lt;').replace('>', '&gt;'); 
} 

var myStr = '<test>'; 
alert(simpleEscape(myStr)); 

最簡單的我能想到的(前提是這是所有你打算更換)。