web-dev-qa-db-ja.com

JavaScriptは\ nを<br />に置き換えます

var messagetoSend = $.trim(document.getElementById("msgText").value);
messagetoSend = messagetoSend.replace("\n", "<br />");
alert(messagetoSend);

与えられた入力:

Line 1


Line 2




Line 3

このアラート:

Line 1<br />


Line 2




Line 3

私はそれが警告することを期待するとき:

Line 1<br /><br /><br />Line 2<br /><br /><br /><br /><br />Line 3
72
Tom Gullen

グローバルマッチング には/ gが必要です

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

これは\nで機能します-\r\nがある場合は この回答 を参照してください

注:The dupe は、\r\n\r、または\nの任意の組み合わせに対する最も完全な回答です。

var messagetoSend = document.getElementById('x').value.replace(/\n/g, "<br />");
console.log(messagetoSend);
<textarea id="x" rows="9">
    Line 1
    
    
    Line 2
    
    
    
    
    Line 3
</textarea>

UPDATE

この質問の訪問者の中には、ブレークラインがエスケープされたテキストを持っているようです

いくつかのテキスト\ r\n複数行にわたって」

その場合、スラッシュをエスケープする必要があります。

replace(/\\r\\n/g, "<br />");

注:すべてのブラウザは、レンダリング時に文字列内の\rを無視します。

161
mplungjan

どちらのタイプの改行も処理します

str.replace(new RegExp('\r?\n','g'), '<br />');
72
WSkinner

.replace()。に正規表現を使用します。

messagetoSend = messagetoSend.replace(/\n/g, "<br />");

これらの改行がwindows-encodingによって行われた場合、carriage returnも置き換える必要があります。

messagetoSend = messagetoSend.replace(/\r\n/g, "<br />");
8
jAndy