解析特殊字符并转换为HTML(转义字符串)

时间:2010-02-10 10:26:17

标签: jquery jquery-plugins

我在解析以HTML格式输入的文本时遇到了一个小问题。是否成功转换了开放和关闭标签等,但我如何识别文本区域中的“下一行(输入文本)”?

请帮忙

<script type="text/javascript">

jQuery(function($) {

    $('#submit').click(function() {
    var htmlval = $('#textEntry').val();
    $('p.escape').text(htmlval);
    $('p.escape').escapeHtml();
    });


});

(function($) {


$.fn.escapeHtml = function() {
    this.each(function() {
        $(this).html(
            $(this).html()
                .replace(/"/g,"&quot;")
                .replace(/&/g,'&amp;')
                .replace(/</g,'&lt;')
                .replace(/>/g,'&gt;')
                .replace(/'/g,'&apos;')
        );
    });
    return $(this);
}

})(jQuery);

</script>

HTML如下..

<p class="escape"></p>
<br>
<textarea name="text" id="textEntry"></textarea><input type="submit" id="submit" value="submit" />

2 个答案:

答案 0 :(得分:3)

不要费心逃避文本客户端,如果有人是恶意的,他们只会手动提交它并绕过你喜欢的javascript。在与数据库交互之前,请转义文本服务器端。

答案 1 :(得分:2)

内置了一个javascript函数!

$.fn.escapeHtml = function() {
    return escape( $(this) );
}

注意: escape()不会使用HTML实体转义。它使用在URI中使用的百分比编码来逃避。所以它与最初要求的不同。