Преобразование новых строк в абзац/br HTML теги, может ли это быть один regex?

В приложении, над которым я работаю, пользователь вводит содержимое в виде обычного текста, который впоследствии будет отображаться в виде HTML. Чтобы содержимое пользователя отображалось как можно красивее, мы преобразуем его следующим образом:

  • Любые блоки текста, разделенные двумя или более символами новой строки, оборачиваются в теги

    . Символы новой строки (и пробелы между ними) удаляются.

  • Любые одиночные символы новой строки (вместе с окружающим пробелом) заменяются тегом
    .

В настоящее время я добиваюсь этого, пропуская текст через две регекс-замены, но мне интересно, можно ли свести это к одной. Вот что у меня есть сейчас (JavaScript):

// content holds the text to process
content = '<p>' + content.replace(/\n([ \t]*\n)+/g, '</p><p>')
                 .replace(/\n/g, '<br />') + '</p>';
8
задан rr. 20 December 2011 в 17:11
поделиться