Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Помогите разобрать строку !!! (https://javascript.ru/forum/events/54086-pomogite-razobrat-stroku.html)

samogray 03.03.2015 03:17

Помогите разобрать строку !!!
 
не могу ничего поделать... такая проблема - я получаю строку с параметра json - ето содержание текстового файла, мне надо его впихнуть в какой нибудь елемент (например параграф), этот файл имеет разрывы строк (может быть до 200 строк), когда я вывожу в консоль мне красиво все видно , но когда я беру этот текст и вставляю в парараграф, у меня не читает разрывы строк, и все подряд пишет, как решить ету проблему??? как каждую строку в отдельный параграф впихнуть.???
например переменная



var log = "
15:39:14,443 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("add") failed - address: ([
("subsystem" => "undertow"),
("server" => "default-server"),
("http-listener" => "default")
]) - failure description: {"JBAS014671: Failed services" => {"jboss.undertow.listener.default" => "org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
Caused by: java.net.BindException: Address already in use: bind"}}
15:39:14,443 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("add") failed - address: ([
("subsystem" => "ejb3"),
("service" => "remote")
]) - failure description: {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.ejb3.connector is missing [jboss.remoting.remotingConnectorInfoService.http-remoting-connector]"]}
15:39:14,536 INFO [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: Deployed "wcm-pres-server.war" (runtime-name : "wcm-pres-server.war")
15:39:14,537 INFO [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: Deployed "wcm-client.war" (runtime-name : "wcm-client.war")"

laimas 03.03.2015 04:50

"subsystem" => "undertow" - это что, представление php-массива описывающего ошибки сервера? Это вы хотите передать клиенту?

samogray 03.03.2015 11:40

та не суть это просто строка - содержание файла..., а файлов много, файлы с логами.., просто они передаютса с сервера в формате:

{
"file_name":"log.txt"
"content":"содержание файла"
....
}


вот ету строку нужно разбить, каждую строку в новом параграфе. я делал через replace ()искал по паттерну (/\r\n|\r|\n/) разрыв в качесте замены вставлял <br>, но вставляло такой символ "--" :help:

laimas 03.03.2015 11:46

{a : 1, b : 2} это объект и можно вывести в параграфы его свойства a и b.
Если же вам надо отобразить содержание лога как есть, и только с переводами строк, то поместите его содержание в тег PRE - отобразит как есть. Если это не приемлемо из-за длинных строк в нем, то что вам мешает заменить \r\n на <br> на сервере - nl2br(string)? Зачем парсить? Или серверный язык не РНР?

samogray 04.03.2015 13:50

спасибо, щас попробую, на сервере java . я еще пробывал через str.split(/$/g)- разбить в масив, разбивать по окончанию строки, но попадает только 1 елемент, - первая строка, которая есть единствинным елементом масива и имеет значения - строку остального содержымого...

laimas 04.03.2015 13:53

nl2br(string) - в java нет

ksa 04.03.2015 14:03

Цитата:

Сообщение от samogray (Сообщение 359356)
та не суть это просто строка - содержание файла..., а файлов много, файлы с логами.., просто они передаютса с сервера в формате:

{
"file_name":"log.txt"
"content":"содержание файла"
....
}

вот ету строку нужно разбить, каждую строку в новом параграфе. я делал через replace ()искал по паттерну (/\r\n|\r|\n/) разрыв в качесте замены вставлял <br>, но вставляло такой символ "--" :help:

Для обработки json никакие паттерны не нужны... :no:

samogray 04.03.2015 14:12

Цитата:

Сообщение от laimas (Сообщение 359358)
{a : 1, b : 2} это объект и можно вывести в параграфы его свойства a и b.
Если же вам надо отобразить содержание лога как есть, и только с переводами строк, то поместите его содержание в тег PRE - отобразит как есть. Если это не приемлемо из-за длинных строк в нем, то что вам мешает заменить \r\n на <br> на сервере - nl2br(string)? Зачем парсить? Или серверный язык не РНР?

я и вывожу ети свойства, да тег (<pre>) подошол,я и забыл о нем ))) но все таки хотелось б, каждую строку в отдельный параграф разбить.

laimas 04.03.2015 14:22

То что у вас в примере на json не похоже, вывести его свойства не получится.
Сервер у вас скорее всего Unix платформы, а значит, если и на клиенте разбор делать, то искать надо только \n - string.replace(/\n/g, '<br>').
Я не знаю java, но в нем тоже есть методы работы со строками, и подготовить лог-файл, разбив его на массив сообщений, и передав клиенту как json, можно. Клиенту бы осталось поместить элементы массива действительно параграфы.
Сервер мог бы тоже не просто разбить сообщения в массив, но и поместить их в html-теги параграфа, а клиент методом .load() загружал бы готовое.

samogray 04.03.2015 14:41

Цитата:

Сообщение от ksa (Сообщение 359541)
Для обработки json никакие паттерны не нужны... :no:

да я знаю что не нужны просто строка которая передаетса ето одно из свойтв json обєкта, и мне эту строку нужно разбить

ksa 04.03.2015 14:47

Цитата:

Сообщение от samogray
строка которая передаетса ето одно из свойтв json обєкта, и мне эту строку нужно разбить

Тогда ищи какими кодами там передается "новая строка" и заменяй ее на тот же
<br />

Потом ту строку в абзац. А абзац в некий элемент документа...

samogray 05.03.2015 11:44

Цитата:

Сообщение от laimas (Сообщение 359547)
То что у вас в примере на json не похоже, вывести его свойства не получится.
Сервер у вас скорее всего Unix платформы, а значит, если и на клиенте разбор делать, то искать надо только \n - string.replace(/\n/g, '<br>').
Я не знаю java, но в нем тоже есть методы работы со строками, и подготовить лог-файл, разбив его на массив сообщений, и передав клиенту как json, можно. Клиенту бы осталось поместить элементы массива действительно параграфы.
Сервер мог бы тоже не просто разбить сообщения в массив, но и поместить их в html-теги параграфа, а клиент методом .load() загружал бы готовое.

Спасибо, буду пробывать, я новичок, так что только методом нучного тыка добюсь результата)))человек, который занимаэтса серверной частью может это зделать но мне интересно самому разобрать многострочную строку., хорошо работает split() но почему то находит только 1 строку и ето единствинный елемент массива полоучаетса, хотя я пишу с флагом глобальности /\n/g

laimas 05.03.2015 18:56

Для многострочного поиска в regExp служит флаг m.

А вообще в JS рег. выражения не столь богаты по возможностям. Не знаю как обстоят дела с этим в Java, но думаю тоже базируются на Perl совместимых, и строки лога лучше разобрать на них, получив действительно удобное для анализа отображение.

samogray 07.03.2015 01:12

Цитата:

Сообщение от laimas (Сообщение 359757)
Для многострочного поиска в regExp служит флаг m.

А вообще в JS рег. выражения не столь богаты по возможностям. Не знаю как обстоят дела с этим в Java, но думаю тоже базируются на Perl совместимых, и строки лога лучше разобрать на них, получив действительно удобное для анализа отображение.

блин!!! спасибо, а я ставил флаг n :cray: , теперь все -ок!!! каждая строка елемент масива, а там разберемся !! большое спасибо!


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