Как заменить все разрывы строк в строке тегами?
как я могу прочитать разрыв строки из значения с помощью Javascript и заменить все разрывы строк на br теги?
пример:
переменная, переданная из PHP, как показано ниже:
"This is man.
Man like dog.
Man like to drink.
Man is the king."
Я хотел бы, чтобы мой результат выглядел примерно так после того, как Javascript преобразует его:
"This is man<br /><br />Man like dog.<br />Man like to drink.<br /><br />Man is the king."
10 ответов:
Если ваша забота просто отображает разрывы линий, вы можете сделать это с помощью CSS.
HTML
<div class="white-space-pre">Some test with linebreaks</div>CSS
.white-space-pre { white-space: pre-wrap; }jsfiddle https://jsfiddle.net/yk1angkz/125/
Примечание: обратите внимание на форматирование кода и отступы, так как
white-space: pre-wrapпоявится все пробелы (за исключением последней новой строки после текста, см. fiddle).
это работает для ввода, поступающего из текстового поля
str.replace(new RegExp('\r?\n','g'), '<br />');
если принятый ответ не работает для вас, то вы можете попробовать.
str.replace(new RegExp('\n','g'), '<br />')это сработало для меня.
также важно закодировать остальную часть текста для защиты от возможных атак внедрения скрипта
function insertTextWithLineBreaks(text, targetElement) { var textWithNormalizedLineBreaks = text.replace('\r\n', '\n'); var textParts = textWithNormalizedLineBreaks.split('\n'); for (var i = 0; i < textParts.length; i++) { targetElement.appendChild(document.createTextNode(textParts[i])); if (i < textParts.length - 1) { targetElement.appendChild(document.createElement('br')); } } }
для тех из вас, кто просто хочет привести максимум. 2
<br>в строке, вы можете использовать это:let text = text.replace(/(\r?\n){2,}/g, '<br><br>'); text = text.replace(/(\r?\n)/g, '<br>');первая строка: ищите
\nили\r\n, где по крайней мере 2 из них подряд, например,\n\n\n\n. Затем замените его на 2brвторая строка: поиск всех одиночных
\r\nили\nи заменить их<br>
это сработало для меня, когда значение пришло из текстового поля:
string.replace(/\n|\r\n|\r/g, '<br/>');
Если вы отправляете переменную из PHP, вы можете получить ее с помощью этого перед отправкой:
$string=nl2br($string);
Comments