【发布时间】:2013-02-19 22:39:05
【问题描述】:
我想这将在两分钟内得到答复,但我无法谷歌找到解决方案。
我有一个文本区域,它首先从服务器接收一些数据(动态使用 AJAX)。 textarea 中的文本可能如下所示:
Hello Cruel <br />World!
我的用户不喜欢这样的外观:)
于是我写了一个很简单的函数:
function replaceHtml( string_to_replace )
{
var result = replaceAll( string_to_replace, " ", " ");
result = result.replace(/<br\s*\/?>/mg,"\n\r"); // or "\n", "\r", "\r\n"
return result;
}
我的输出如下所示:
Hello Cruel World!
代替:
Hello Cruel
World!
我想要一个最多 5 行且可应用于所有浏览器和操作系统的解决方案
顺便说一句,我不喜欢正则表达式,所以也许真正的问题会在那里..
更新
From this answer 和 Michael_B 先生我得到了这个解决方案,它对我有用,但我有一种预感,这个角色可能不是最好的解决方案:
function replaceHtml( string_to_replace )
{
return string_to_replace.replace(/ /g, ' ').replace(/<br.*?>/g, '\u2028');
}
【问题讨论】:
-
我不确定,但试试 '\n\r' 而不是 "\n\r" (单引号替换双引号)
-
似乎工作:jsfiddle.net/Xfffg
-
@joDev 单引号和双引号在Javascript中是等价的
-
replaceAll 不是函数
-
@Explosion Pills:不敢相信,但它对我不起作用..
function replaceHtml( string_to_replace ) { var result = string_to_replace.replace(/&nbsp;/g, ' ').replace(/<br.*?>/g, '\n'); return result; }
标签: javascript jquery newline cakephp-2.1