解码JavaScript中的HTML实体?

回答:

 & -> `&`

> -> `>`

任何小的库函数都可以解决这个问题?

回答:

我经常在工具带上有这个小功能:

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(/&lt;/g, "<")

.replace(/&gt;/g, ">");

//...

}

如果您不喜欢链式替换,则可以构建一个对象来存储您的实体,例如:

function htmlDecode (input) {

var entities= {

"&amp;": "&",

"&lt;": "<",

"&gt;": ">"

//....

};

for (var prop in entities) {

if (entities.hasOwnProperty(prop)) {

input = input.replace(new RegExp(prop, "g"), entities[prop]);

}

}

return input;

}

以上是 解码JavaScript中的HTML实体? 的全部内容, 来源链接: utcz.com/qa/412112.html

回到顶部