为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery将换行符转换为br(相当于nl2br)

jQuery将换行符转换为br(相当于nl2br)

暮色呼如 2019-11-11 15:56:53
我让jQuery提取一些textarea内容并将其插入li中。我希望它在视觉上保留换行符。必须有一种非常简单的方法来执行此操作...
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

将其放在您的代码中(最好放在通用的js函数库中):


String.prototype.nl2br = function()

{

    return this.replace(/\n/g, "<br />");

}

用法:


var myString = "test\ntest2";


myString.nl2br();

创建字符串原型函数使您可以在任何字符串上使用它。


查看完整回答
反对 回复 2019-11-11
?
千万里不及你

TA贡献1784条经验 获得超9个赞

本着更改呈现而不是更改内容的精神,以下CSS 使每个换行符的行为类似于<br>:


white-space: pre;

white-space: pre-line;

为什么有两个规则:pre-line仅影响换行符(感谢线索,@ KevinPauli)。IE6-7和其他旧的浏览器回落到更极端的状态pre,其中还包括nowrap并呈现多个空格。有关这些设置和其他设置(pre-wrap)的详细信息,请参见mozilla和css-tricks(感谢@Sablefoste)。


尽管我通常不赞成SO偏向于猜测问题而不是回答问题,但在这种情况下,用<br>标记替换换行符可能会增加用户未经洗刷的输入攻击的脆弱性。每当您发现自己要更改字面意义所暗示的.text()呼叫时,就会越过一条红线.html()。(感谢@AlexS强调了这一点。)即使您当时排除了安全风险,将来的更改也可能会无意间引入它。相反,此CSS允许您使用safer获得硬换行而无需标记.text()。


查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 1535 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信