В приложении, над которым я работаю, пользователь вводит содержимое в виде обычного текста, который впоследствии будет отображаться в виде HTML. Чтобы содержимое пользователя отображалось как можно красивее, мы преобразуем его следующим образом:
Любые блоки текста, разделенные двумя или более символами новой строки, оборачиваются в теги
. Символы новой строки (и пробелы между ними) удаляются.
Любые одиночные символы новой строки (вместе с окружающим пробелом) заменяются тегом
.
В настоящее время я добиваюсь этого, пропуская текст через две регекс-замены, но мне интересно, можно ли свести это к одной. Вот что у меня есть сейчас (JavaScript):
// content holds the text to process
content = '<p>' + content.replace(/\n([ \t]*\n)+/g, '</p><p>')
.replace(/\n/g, '<br />') + '</p>';