2010-11-15 57 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)); 

最简单的我能想到的(前提是这是所有你打算更换)。