Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перевод строки и пробел (https://javascript.ru/forum/misc/38425-perevod-stroki-i-probel.html)

DeUM 01.06.2013 09:10

Перевод строки и пробел
 
Добрый день!
Решил сделать визуализацию вводимого текста:
$text = $('textarea[name=form_message]').val()
    $textNew = $text.replace(/\n/g, '<br />')
	$textNew = $textNew.replace(/[\s]/g, ' ');

При этом он только пробелы хорошо заменяет а вот насчет перевода строки не получается, при этом выключив замену пробелов перевод строки работает.
Помогите решить данную проблему :-?

zebra 01.06.2013 10:44

var str = 'dasdsda das\n2222222\n33333333 3333 33';
str = str.replace(/\n/g, '<br>');
alert(str);

Все работает же.

DeUM 01.06.2013 10:58

Спасибо по вашему примеру разобрался:
Ошибка:<br />
Заменил на:<br>
Ещё раз спасибо!:yes:

zebra 01.06.2013 11:14

Так заэкранируйте слеш, правильно закрывать тэги. Я кстати тоже его не заметил :)

Magneto 01.06.2013 11:42

Цитата:

Сообщение от zebra (Сообщение 253910)
Так заэкранируйте слеш, правильно закрывать тэги. Я кстати тоже его не заметил :)

В HTML5 не нужно закрывать одиночные теги.

oneguy 01.06.2013 15:01

Цитата:

Сообщение от DeUM (Сообщение 253907)
Спасибо по вашему примеру разобрался:
Ошибка:<br />
Заменил на:<br>
Ещё раз спасибо!:yes:

Возможно, ваше задание можно решить всего лишь с помощью свойства CSS white-space.

edison 01.06.2013 15:15

Ну вообще то теги тут не при чем и экранировать ничего не нужно )))

<br /> == <br\s/>
а дальше
$textNew = $textNew.replace(/[\s]/g, ' ');
и наверняка там не просто пробел на пробел заменяется, а на какой нибудь неразрывный пробел и коверкает тег
[\s] - зачем юзать \s ? не думаю что у вас там будет что-то кроме \n и ' ' и просто заменять / /g на '&nbsp;' думаю было бы логичнее притом сначала пробелы, а потом уже перенос строки, чтобы не коверкать тег, конечно это если \s не юзать )))
А по сути смысл этого преобразования если white-space: pre; или pre-wrap с этим справится.


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