我想将文本转换"x < y"
为正确转义的"x < y"
. 我一直在使用浏览器的内置转义功能来做到这一点:
div = $('<div></div>');
div.text(my_text);
escaped_text = div.html();
这很好用......直到我在 IE 8 中进行测试,当你调用 .html() 时它会吃掉换行符。是否有类似的简洁、强大的方法可以在 IE 8 中使用?
我想将文本转换"x < y"
为正确转义的"x < y"
. 我一直在使用浏览器的内置转义功能来做到这一点:
div = $('<div></div>');
div.text(my_text);
escaped_text = div.html();
这很好用......直到我在 IE 8 中进行测试,当你调用 .html() 时它会吃掉换行符。是否有类似的简洁、强大的方法可以在 IE 8 中使用?
下划线具有转义/取消转义方法。这是一个非常有用的库。
您可以像这样交换 innerHTML 属性的 html() 方法:
div = $('<div></div>');
div.text(my_text);
escaped_text = div[0].innerHTML;
你可以试试这个:
jQuery代码:
(function ($) {
$.fn.escapeHtml = function () {
var e = document.createElement("DIV"),
s = '';
e.innerHTML = $(this).val();
s = e.textContent || e.innerText || "";
e.remove();
return s.replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi, '');
}
})(jQuery);
如何使用:
// if you want to real input value then, go with jQuery '.val()' option
var htmlString = $('#yourelement').val();
// remove html character, go with jQuery '.escapeHtml()' option
var safeHtmlString = $('#yourelement').escapeHtml();
或者您可以用作 jQuery 插件: