3 回答

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

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()。
添加回答
舉報