0

我想将文本转换"x < y"为正确转义的"x &lt; y". 我一直在使用浏览器的内置转义功能来做到这一点:

 div = $('<div></div>');
 div.text(my_text);
 escaped_text = div.html();

这很好用......直到我在 IE 8 中进行测试,当你调用 .html() 时它会吃掉换行符。是否有类似的简洁、强大的方法可以在 IE 8 中使用?

4

3 回答 3

1

下划线具有转义/取消转义方法。这是一个非常有用的库。

于 2013-02-13T22:07:18.213 回答
0

您可以像这样交换 innerHTML 属性的 html() 方法:

div = $('<div></div>');
div.text(my_text);
escaped_text = div[0].innerHTML;
于 2013-02-13T03:54:36.303 回答
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 插件:

jQuery.escapeHtml()

于 2013-11-21T16:11:59.707 回答