侃侃无极
我建议不要使用被接受为答案的jQuery代码。虽然它没有插入要解码到页面中的字符串,但它确实会导致创建脚本和HTML元素等内容。这比我们需要的代码要多得多。相反,我建议使用更安全、更优化的功能。var decodeEntities = (function() {
// this prevents any overhead from creating the object each time
var element = document.createElement('div');
function decodeHTMLEntities (str) {
if(str && typeof str === 'string') {
// strip script/html tags
str = str.replace(/
str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
element.innerHTML = str;
str = element.textContent;
element.textContent = '';
}
return str;
}
return decodeHTMLEntities;})();http://jsfiddle.net/LYteC/4/要使用这个函数,只需调用decodeEntities("&")它将使用与jQuery版本相同的底层技术-但不需要jQuery的开销,并且在清理输入中的HTML标记之后。看见迈克·塞缪尔的评论关于如何过滤HTML标记的公认答案。通过在项目中添加以下行,可以轻松地将此函数用作jQuery插件。jQuery.decodeEntities = decodeEntities;