Как я могу прочитать разрыв строки из значения с помощью 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."
javascript
Джин Юн
источник
источник
Ответы:
Это превратит все результаты в HTML
Если вам интересно, что ?: означает. Это называется группа без захвата. Это означает, что группа регулярных выражений в скобках не будет сохранена в памяти для последующего обращения к ней. Вы можете проверить эти темы для получения дополнительной информации:
https://stackoverflow.com/a/11530881/5042169 https://stackoverflow.com/a/36524555/5042169
источник
str.replace("\n", '<br />')
(первый аргумент - обычная строка) заменит только первое вхождение.String#replace
Приводит первый аргументString
к экранированномуRegExp
экземпляру без флагов.str.replace('\n', '<br />');
эквивалентноstr.replace(new RegExp('\n'), '<br />');
str.split("\n").join("<br />")
jsperf.com/split-join-vs-replace-regex RegEx кажется немного быстрееЕсли ваша задача - отображать разрывы строк, вы можете сделать это с помощью CSS.
Jsfiddle: https://jsfiddle.net/5bvtL6do/2/
Примечание : обратите внимание на форматирование кода и отступы, так как
white-space: pre-line
будут отображаться все новые строки (кроме последней новой строки после текста, см. Fiddle).источник
white-space: pre-wrap;
я предпочитаю использоватьwhite-space: pre-line;
(чтобы не добавлять строку окончательного перерыва в конце концов)Без регулярного выражения:
источник
\\n
не соответствует новой строке, потому что он ищетbackslash
+n
.Это работает для ввода от текстовой области
источник
Если принятый ответ не подходит вам, вы можете попробовать.
Это сработало для меня.
источник
new RegExp('\n', 'g')
идентично/\n/g
(за исключением некоторых подробностей об использовании примитивных литералов по сравнению с их конструкторами)./\n/g
в виде строки!Независимо от системы:
источник
Также важно закодировать остальную часть текста, чтобы защитить от возможных атак внедрения сценария.
источник
Это сработало для меня, когда значение пришло из TextBox:
источник
Для тех из вас, кто просто хочет, чтобы макс. 2
<br>
подряд, вы можете использовать это:Первая строка: найдите
\n
ИЛИ,\r\n
где хотя бы 2 из них находятся в строке, например\n\n\n\n
. Затем замените его на 2br
Вторая строка: поиск всех одинарных
\r\n
или\n
и заменить их на<br>
источник
если вы отправляете переменную из PHP, вы можете получить ее перед отправкой:
источник
str = str.replace(/\n/g, '<br>')
str = str.replace(/\n*\n/g, '<br>')
источник
str = str.replace(/\n+/g, '<br>')
для второго случаяНе отвечая на конкретный вопрос, но я уверен, что это кому-то поможет ...
Если у вас есть вывод из PHP, который вы хотите визуализировать на веб-странице с использованием JavaScript (возможно, результат Ajax-запроса), и вы просто хотите сохранить пробелы и разрывы строк, попробуйте заключить текст в
<pre></pre>
блок:источник
Пытаться
источник