2010-07-27 37 views
1

我陷入了解析文本区域中的回报的小问题。Convert Carrage返回到br标记

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中解决这个问题。我intented输出等预先这个

&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 

谢谢...

回答

2

尝试更换:

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

有了:也是

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

注意,在文字区域,两者的他们归结为\n所以你需要替换其中两个,如\n\n

+0

- (...仍然不能在IE7中工作 – Sullan 2010-07-27 06:14:46