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

我让jQuery提取一些textarea内容并将其插入li中。

我希望它在视觉上保留换行符。

必须有一种非常简单的方法来执行此操作...


暮色呼如
浏览 1540回答 3
3回答

烙印99

将其放在您的代码中(最好放在通用的js函数库中):String.prototype.nl2br = function(){&nbsp; &nbsp; return this.replace(/\n/g, "<br />");}用法:var myString = "test\ntest2";myString.nl2br();创建字符串原型函数使您可以在任何字符串上使用它。

千万里不及你

本着更改呈现而不是更改内容的精神,以下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()。
打开App,查看更多内容
随时随地看视频慕课网APP