|
|
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
Не удалось найти готовую функцию сходу. nl2br на яве есть, конечно, но одно дело подставить br в одно место, другое парочку p /p сразу в два. Пишут что абзац можно не закрывать если ... и перечисляется довольно обширный список. http://www.w3.org/TR/html-markup/p.html Однако, поскольку это, все-таки текст, то лучше бы закрывать. В общем может есть у кого готовое. Пока что сделал тупо Код: sql 1. \r - отвинды, глобально выкидывается в //dev/null, \n заменяется на p, тоже глобально. Я вообще в паттернах крайне слаб, а чтобы придумать еще и парный паттерн - это для меня фантастика. Насчет nl2br и вообще br. В типографике эквивалент br - мягкий перенос. С какого перепуга весь интернет повелся переносить строки только по одному нажатию Enter - я могу объяснить только тем обстоятельством, что интернет начинали программисты. Которые задолго до того писали текстовые редакторы для написания программ в редакторах которые сами и написали. В результате теперь чтобы сделать абзац надо два раза перематывать лист и переносить каретку. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 20:47 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
br, наверняка берет свое начало в консолях, которые были задолго до веба. В программах которые работают на принтер нажатием Ентер строку перенести нельзя. Кто хоть раз набирал текст в Ворде знает об этом, но не замечает может быть разницы с программами которые работают на экран. Ентер, или CRLF в типографских прогах генерит абзац, или paragraph - тот самый p. Перенести строку вручную, принудительно то есть, можно специальной комбинацией, как правило это Shift+Enter (Alt+Enter в екзеле). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 20:54 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
Да, и код у мягкого переноса другой и почему-то в разных программах - разный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 20:55 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
deblogger, я правильно понимаю, что текст "123\n456\n789" надо заменить на "<p>123</p><p>456</p><p>789</p>" ? Если да, то вроде всё просто: Код: javascript 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 21:16 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
Яростный Меч, Не допер. Спасибо. Что значит паттерн "r?" - это оно самое - выкинуть все \r прежде чем менять \n ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 21:41 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
debloggerЧто значит паттерн "r?" - это оно самое - выкинуть все \r прежде чем менять \nэтот регекс будет искать все "\n". Если перед "\n" окажется "\r" (виндовый случай "\r\n"), то он при замене уйдет вместе со своим "\n". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 21:45 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
Нет, допер. Так нельзя. Безусловно подставлять абзацы нельзя. Потому что любой текст оказывается абзацем. <p>4</p>,<p>1</p>,<p>1</p><p>2</p><p>3</p><p>4</p>, 4, 1, 1 - это вообще ID полей. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 21:47 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
deblogger, ну давай несколько примеров входных данных и для каждого из них правильный результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 21:51 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
В целом задача тривиальная и много раз решеная но в прошлом я был единственным клиентом своих апликух, а теперь работа на публику требует дополнительных опций. Задача обычная. Я собираю текст из колонок в таблице который был подвергнут редактированию, проверяю, вот эти переносы \n заменяю на хтмл ентитьки и потом делю колонки \t, а строки \n. Простая и типичная схема - так все таблицы в буфер копируются грамотными апликухами. Затем все барахло пихается в value нажатой кнопки и поехали на сервер. Там я разберу строки по переносу и столбцы по табуляторам, которые тоже надо проверить и, или выкинуть или заменить на соответствующее количество пробелов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 21:54 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
deblogger, Ну какие там примеры. Идет сбор с полей, всякие разные данные. Цифры, текст, енум, даты и тп. Тотально все, конечно, текст, тип подразумевается и только рендерится. Есть и текстареа где можно переносить строки. Ну вот, получается 1, 4, 5, 1\r\n2\r\n3\r\n и так далее если ввести 1 2 3 А надо так, чтобы если нет переноса в строке - то и ничего с ней, а если есть, то заменить на абзацы. Стало быть нечетный на p, четный на /p ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 21:57 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
Пока что можно и с одним р, там контекст позволяет. Никаких сложных структур. Скажем статейка с фотками. Упрутся абзацы, наверняка. Вопрос пока такой. Эта рега Код: sql 1. Точно все виндовые \r снесет и \n не оставит и в винде и на линухе? Кстати, в оригинальном нл2бр вообще какая-то жуть. Работает, но так, чтобы и вашим и нашим. И бр ставит и переносы оставляет. Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 22:04 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
debloggerdeblogger, Ну какие там примеры. Идет сбор с полей, всякие разные данные. Цифры, текст, енум, даты и тп. Тотально все, конечно, текст, тип подразумевается и только рендерится. Есть и текстареа где можно переносить строки. Ну вот, получается 1, 4, 5, 1\r\n2\r\n3\r\n и так далее если ввести 1 2 3 А надо так, чтобы если нет переноса в строке - то и ничего с ней, а если есть, то заменить на абзацы. Стало быть нечетный на p, четный на /p я правильно понял, "1, 4, 5, 1\r\n2\r\n3\r\n" - это 4 разные строки (то есть "1", "4", "5" и "1\r\n2\r\n3\r\n")? Если нет, и Вы их в одну сложили, то добавили себе проблем, так как Вы никак не отделите эти значения от строки (ведь в строке тоже запятые могут присутствовать). А по поводу "А надо так, чтобы если нет переноса в строке - то и ничего с ней" - ну так есть функция match у строк :) сбахайте проверку на наличие переноса (хотя бы одного), и если он есть - тогда проводите замену, как уже предложили ранее :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 22:42 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
Програмёр, Запятые это не разделители. Это текст. Разделитель столбцов табулятор, разделитель строк перенос строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 23:13 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
debloggerПрограмёр, Запятые это не разделители. Это текст. Разделитель столбцов табулятор, разделитель строк перенос строк. ок, тогда всё-таки... есть данные: 1\t1, 4, 5, 1\r\n2\r\n3\r\n\t3\t4 Во что они должны превратиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2013, 23:17 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
Двойной \r\n должен превратиться в </p><p> а одиночный в <br> ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2013, 08:14 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
deblogger... делю колонки \t, а строки \n...Не советую так делать, сами видите сколько проблем. А если надо будет вставить содержимое textarea, где \n - это нужный символ? Возьмите редкий символ из кодировки utf-8, и применяйте его для переноса строк, или двойную табуляцию, или другие способы. Вариантов - море. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2013, 12:26 |
|
||
|
Заменить переносы строк абзацами
|
|||
|---|---|---|---|
|
#18+
Я уже сделал. В тексте не может быть символа \n по определению. Такой символ не имеет никакого значения для рендера веб-страницы, он влияет только на отображение исходного кода, на читабельность его. Вы же знаете что если написать вот так в исходнике хтмл, то на странице все будет ровно в одну строку. Подумал может вы последовательность с символом перепутали. Последовательность разрешена, хоть стопицот раз \n\n\n впишите куда угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 06:58 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=22&tid=1448036]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
174ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 486ms |

| 0 / 0 |
