3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
將其放在您的代碼中(最好放在通用的js函數(shù)庫(kù)中):
String.prototype.nl2br = function()
{
return this.replace(/\n/g, "<br />");
}
用法:
var myString = "test\ntest2";
myString.nl2br();
創(chuàng)建字符串原型函數(shù)使您可以在任何字符串上使用它。

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊
本著更改呈現(xiàn)而不是更改內(nèi)容的精神,以下CSS 使每個(gè)換行符的行為類似于<br>:
white-space: pre;
white-space: pre-line;
為什么有兩個(gè)規(guī)則:pre-line僅影響換行符(感謝線索,@ KevinPauli)。IE6-7和其他舊的瀏覽器回落到更極端的狀態(tài)pre,其中還包括nowrap并呈現(xiàn)多個(gè)空格。有關(guān)這些設(shè)置和其他設(shè)置(pre-wrap)的詳細(xì)信息,請(qǐng)參見(jiàn)mozilla和css-tricks(感謝@Sablefoste)。
盡管我通常不贊成SO偏向于猜測(cè)問(wèn)題而不是回答問(wèn)題,但在這種情況下,用<br>標(biāo)記替換換行符可能會(huì)增加用戶未經(jīng)洗刷的輸入攻擊的脆弱性。每當(dāng)您發(fā)現(xiàn)自己要更改字面意義所暗示的.text()呼叫時(shí),就會(huì)越過(guò)一條紅線.html()。(感謝@AlexS強(qiáng)調(diào)了這一點(diǎn)。)即使您當(dāng)時(shí)排除了安全風(fēng)險(xiǎn),將來(lái)的更改也可能會(huì)無(wú)意間引入它。相反,此CSS允許您使用safer獲得硬換行而無(wú)需標(biāo)記.text()。
添加回答
舉報(bào)