Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 05.06.2012, 22:11
Профессор
Посмотреть профиль Найти все сообщения от Антон Крамолов
 
Регистрация: 11.04.2012
Сообщений: 255

v = v.trim();
        v = '<p>' + v;
        v = v.split(/(\r\n|\r|\n){2,}/).join('</p><p>');
        v += '</p>';
        val('preview', v);


Почему такой код неправильно работает?

Вводишь

1
2
3

Получается такое безобразие

<div id="preview" class="preview">
  <p>1</p>
  <p>
</p>
  <p>2</p>
  <p>
</p>
  <p>3</p>
</div>


Я хочу чтобы два переноса новый абзац, один тупо br вставить
Ответить с цитированием
  #22 (permalink)  
Старый 05.06.2012, 22:52
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

У вас в регулярке есть захватывающие скобки. Поэтому split в массив кидает, помимо прочего, ещё и совпадения в скобках.
Если вам просто надо показать текст в элементе с сохранением переносов строк, то лучше установить свойство CSS white-space: pre-line.
Ответить с цитированием
  #23 (permalink)  
Старый 19.12.2012, 14:43
Профессор
Посмотреть профиль Найти все сообщения от Антон Крамолов
 
Регистрация: 11.04.2012
Сообщений: 255

было время
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск