我想将"x < y"
等文字转换为正确转义的"x < y"
。我一直在使用浏览器的内置转义功能来执行此操作:
div = $('<div></div>');
div.text(my_text);
escaped_text = div.html();
这很有效....直到我在IE 8中测试,当你调用.html()时,它会吃掉换行符。是否有类似的简洁,强大的方法,这也将在IE 8中工作?
答案 0 :(得分:1)
Underscore有escape / unescape方法。这是一个非常有用的库。
答案 1 :(得分:0)
您可以像这样交换innerHTML属性的html()方法:
div = $('<div></div>');
div.text(my_text);
escaped_text = div[0].innerHTML;
答案 2 :(得分:0)
你可以试试这个:
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插件: