示例转换:
& -> `&`
> -> `>`
有没有可以处理这个的小型库函数?
& -> `&`
> -> `>`
有没有可以处理这个的小型库函数?
我在我的工具腰带上经常会用到这个小函数:
function htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes[0].nodeValue;
}
htmlDecode("&"); // "&"
htmlDecode(">"); // ">"
这将适用于所有HTML实体。
编辑:由于您不处于DOM环境中,我认为您将不得不通过“硬编码”方式进行转换。
function htmlDecode (input) {
return input.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">");
//...
}
如果你不喜欢链式替换,你可以建立一个对象来存储你的实体,例如:function htmlDecode (input) {
var entities= {
"&": "&",
"<": "<",
">": ">"
//....
};
for (var prop in entities) {
if (entities.hasOwnProperty(prop)) {
input = input.replace(new RegExp(prop, "g"), entities[prop]);
}
}
return input;
}
he(即“HTML实体”)是一个强大的JavaScript HTML实体编码器/解码器。它支持HTML中所有标准命名字符引用,处理含糊不清的和其他边缘情况下的&符号,像浏览器一样处理,具备全面的测试套件,与许多其他JavaScript解决方案不同的是,he可以很好地处理星际Unicode符号。 在线演示可用。
function html_entity_decode(s) {
var t=document.createElement('textarea');
t.innerHTML = s;
var v = t.value;
t.parentNode.removeChild(t);
return v;
}