var messagetoSend = $.trim(document.getElementById("msgText").value);
messagetoSend = messagetoSend.replace("\n", "<br />");
alert(messagetoSend);
Compte tenu de l'entrée:
Line 1
Line 2
Line 3
Cela alerte:
Line 1<br />
Line 2
Line 3
Quand j'attends d'alerter:
Line 1<br /><br /><br />Line 2<br /><br /><br /><br /><br />Line 3
Vous avez besoin du/g pour correspondance globale
replace(/\n/g, "<br />");
Cela fonctionne pour moi pour \n
- voir cette réponse si vous pouviez avoir \r\n
NOTE:La dupe est la réponse la plus complète pour toute combinaison de \r\n
, \r
Ou \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>
[~ # ~] met à jour [~ # ~]
Il semble que certains visiteurs de cette question ont un texte avec les lignes de séparation échappé comme
du texte\ r\nsur plus d'une ligne "
Dans ce cas, vous devez échapper aux barres obliques:
replace(/\\r\\n/g, "<br />");
REMARQUE: Tous les navigateurs ignoreront \r
Dans une chaîne lors du rendu.
Gère l'un ou l'autre type de saut de ligne
str.replace(new RegExp('\r?\n','g'), '<br />');
Utilisez une expression régulière pour .replace()
.:
messagetoSend = messagetoSend.replace(/\n/g, "<br />");
Si ces sauts de ligne ont été créés par l'encodage windows, vous devrez également remplacer le carriage return
.
messagetoSend = messagetoSend.replace(/\r\n/g, "<br />");