Вопрос:

JavaScript замените \ n на <br />

javascript regex replace

160223 просмотра

3 ответа

34686 Репутация автора

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

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
Автор: Tom Gullen Источник Размещён: 22.02.2011 09:42

Ответы (3)


155 плюса

92202 Репутация автора

Решение

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

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

Это работает для меня \n - посмотрите этот ответ, если у вас может быть\r\n

Примечание: боян наиболее полный ответ на любую комбинацию \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>

ОБНОВИТЬ

Кажется, что некоторые посетители этого вопроса имеют текст с перерывами, как

некоторый текст \ г \ п более одной линии»

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

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

ПРИМЕЧАНИЕ. Все браузеры игнорируют \rстроку при рендеринге.

Автор: mplungjan Размещён: 22.02.2011 09:45

7 плюса

180226 Репутация автора

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

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

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

messagetoSend = messagetoSend.replace(/\r\n/g, "<br />");
Автор: jAndy Размещён: 22.02.2011 09:45

70 плюса

1501 Репутация автора

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

str.replace(new RegExp('\r?\n','g'), '<br />');
Автор: WSkinner Размещён: 21.11.2013 07:14
Вопросы из категории :
32x32