JavaScript заменить n на [дубликат]


этот вопрос уже есть ответ здесь:

  • Как заменить все разрывы строк в строке тегами
    ? 10 ответов
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
3 58

3 ответа:

вам нужно /g для глобальные сопоставления

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

это работает для меня

<textarea id="x">
Line 1


Line 2




Line 3
</textarea>
<script>
var messagetoSend = document.getElementById('x').value.replace(/\n/g, "<br />");
alert(messagetoSend);
</script>

обновление

кажется, у некоторых посетителей этого вопроса есть текст с линиями перегиба, экранированными как

текст\r\n более чем на одну строку"

в этом случае вам нужно избежать косых черт:

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

Примечание: все браузеры игнорировать \r в строке при рендеринге.

обрабатывает любой тип разрыва строки

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

используйте регулярное выражение для .replace().:

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

если эти разрывы строк были сделаны с помощью Windows-кодирования, вам также придется заменить carriage return.

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