将Carriage转换为br标签

时间:2010-07-27 05:02:35

标签: javascript jquery regex parsing jquery-plugins

我遇到了解决文本区域中的carrage返回的小问题。

JQuery代码

$.fn.escapeHtml = function() {
    this.each(function() {
        $(this).html(
            $(this).html()
                .replace(/"/g,""")
                .replace(/&/g,'&')
                .replace(/</g,'&lt;')
                .replace(/>/g,'&gt;')
                .replace(/'/g,'&apos;')
                // For converting carrage return (enter key) to br
                .replace(/(\r\n|\r|\n)/g, '&lt; br &gt;')
                .replace(/183/g,'&middot;')
        );
    });
    return $(this);
}
})(jQuery);

在Firefox中,它可以工作并输出

&lt;big&gt;Heading&lt;/big&gt;<br>Test Line 1<br>Test Line 2<br>Test Line 3

在Internet Explorer中它根本不起作用..我如何在IE中修复此问题。我的意图输出是这样的

&lt;big&gt;Heading&lt;/big&gt;&lt;br&gt;Test Line 1&lt;br&gt;Test Line 2&lt;br&gt;Test Line 3

提前致谢...

1 个答案:

答案 0 :(得分:2)

尝试更换:

.replace(/(\r\n|\r|\n)/g, '&lt; br &gt;')

使用:

.replace(/(\n\n|\r|\n)/g, '&lt; br &gt;')

另请注意,在textarea中,它们都会归结为\n,因此您需要替换其中两个,例如\n\n