Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Замена перевода строк на </p><p> (https://javascript.ru/forum/misc/70577-zamena-perevoda-strok-na-p-p.html)

Булат Азат улы 16.09.2017 20:29

Замена перевода строк на </p><p>
 
Здравствуйте. Нужно изменить текст, полученную от <textarea>. В полученном тексте нужно переводы строк заменить на "</p><p>". То есть, подготовить его для вывода в браузер.
Написал такой код, но он не работает (т.е. переводы строк не работает):
$(".news [data-id="+newDataId+"]").siblings("h3").after("<p>"+newText.replace('\r\n', '</p><p>')+"</p>");

"newText" - это и есть текст, принимаемый из <textarea>.
Если оставить '\n' - то первый перевод строки заменяется, а дальше нет.
Может, есть какие-то более удобные приёмы для этого, как, например, в PHP - nl2br()?

рони 16.09.2017 20:39

Булат Азат улы,
а так?
newText.replace(/\r\n/mg, '</p><p>')

Булат Азат улы 16.09.2017 20:53

рони,
Не работает :-?

рони 16.09.2017 21:04

Булат Азат улы,
newText.replace(/\r*\n/mg, '</p><p>')

laimas 16.09.2017 21:07

Цитата:

Сообщение от Булат Азат улы
как, например, в PHP - nl2br()?

Эта функция заменяет на <br>, а не <p></p>.

Если речь идет о разбиении на параграфы, то это одно и выполнять нужно не так,
если вывод как есть (pre), то обернуть в <pre></pre>,
а если в некотором месте перенести, то менять на <br>.

Чего вы пытаетесь сделать не понять.

Булат Азат улы 16.09.2017 21:13

рони,
Спасибо большое, теперь работает! А не могли бы вкратце объяснить, что означает эти доп. слеши, звёздочки и /mg?

Булат Азат улы 16.09.2017 21:15

laimas,
Да, заменяет на <br>. Но я потом заменил и его:
// $text = str_replace('<br />', '</p><p>', nl2br($dataNew['text']));

рони 16.09.2017 21:25

Булат Азат улы,
https://javascript.ru/regexp

https://learn.javascript.ru/regexp-quantifiers
https://learn.javascript.ru/regular-...ons-javascript

Булат Азат улы 16.09.2017 21:26

рони,
Спасибо!

void() 16.09.2017 21:27

Еще вариант)
var text = ' lorem /n lorem'
var re = new RegExp('(/n)', 'g');
text = text.replace(re, '<p></p>');
alert(text);


Часовой пояс GMT +3, время: 05:17.