使用行分隔符(Javascript)替换textarea中的<br />

Igo*_* L. 3 javascript jquery newline cakephp-2.1

我想这将在两分钟内得到解答,但我无法谷歌解决方案.

试过:这个,这个

我有一个textarea,它首先从服务器收到一些数据(动态使用AJAX).textarea中的文字可能如下所示:

Hello&nbsp;Cruel&nbsp;<br&nbsp;/>World!
Run Code Online (Sandbox Code Playgroud)

我的用户不喜欢这个:)

所以我写了一个非常简单的函数:

    function replaceHtml( string_to_replace ) 
    {
        var result = replaceAll( string_to_replace, "&nbsp;", " ");
        result = result.replace(/<br\s*\/?>/mg,"\n\r"); // or "\n", "\r", "\r\n"
        return result;
     }
Run Code Online (Sandbox Code Playgroud)

我的输出如下:

Hello Cruel World!
Run Code Online (Sandbox Code Playgroud)

代替:

Hello Cruel
World!
Run Code Online (Sandbox Code Playgroud)

我想要一个最多5行的解决方案,可以应用于所有浏览器和操作系统

顺便说一句,我不是正则表达的粉丝,所以也许真正的问题就在那里..

UPDATE

从这个答案和Michael_B先生我得到了这个解决方案,这对我有用,但是我有一个预感,这个角色可能不是最好的解决方案:

function replaceHtml( string_to_replace ) 
{
    return string_to_replace.replace(/&nbsp;/g, ' ').replace(/<br.*?>/g, '\u2028');
}
Run Code Online (Sandbox Code Playgroud)

Kai*_*mer 8

基于@Explosion Pills评论和jsFiddle

DEMO

function replaceHtml( string_to_replace ) 
{
        return string_to_replace.replace(/&nbsp;/g, ' ').replace(/<br.*?>/g, '\n');
}
Run Code Online (Sandbox Code Playgroud)

UPDATE基于文本区域中的新行

更新了DEMO

也许这将解决您的问题\n- 需要jQuery.

function replaceHtml(string_to_replace) {
    return $("<div>").append(string_to_replace.replace(/&nbsp;/g, ' ').replace(/<br.*?>/g, '&#13;&#10;')).text();
}
Run Code Online (Sandbox Code Playgroud)