Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Подскажите регулярку. Нужно вырезать tr и всё их содержимое. (https://javascript.ru/forum/events/52024-podskazhite-regulyarku-nuzhno-vyrezat-tr-i-vsjo-ikh-soderzhimoe.html)

SokDobriy 01.12.2014 00:31

Подскажите регулярку. Нужно вырезать tr и всё их содержимое.
 
Подскажите регулярку. Нужно вырезать все <tr></tr>, в плане того, что нужны только <tr>содержимое</tr>, со страницы и всё их содержимое, и убрать все встречающиеся теги <p> и </p> без их содержимого.
Таблиц на странице несколько. Заранее не известно сколько. В каждой таблице всё это дело находится между тегами <tbody>.

krutoy 01.12.2014 01:06

re=/<tr>.*?<\/tr>/g
s="<body><tr><span>foo</span></tr>foo<div>foo</div><tr>bar</tr></body>"
alert(s.match(re).join(""))
//  <tr><span>foo</span></tr><tr>bar</tr>

Цитата:

убрать все встречающиеся теги <p> и </p> без их содержимого.
re=/<p>([^>]+)<\/p>/g
s="<div><p>foo</p></div><p>bar</p>"
alert(s.replace(re, "$1"))
// <div>foo</div>bar

А остальные теги оставлять?

SokDobriy 01.12.2014 01:26

Не получается. Тут запускаю всё ок, а у себя нет. Не пойму в чём дело.
function readTextFile(file)
{
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
                var allText = rawFile.responseText;
                
                allText.match(/<tr>.*?<\/tr>/g);
       
                alert(allText);
                
            }
        }
    }
    rawFile.send(null);
}


А с джойном вообще ничего не выводит.

krutoy 01.12.2014 01:50

SokDobriy,
Вот так попробуй, видимо там проблемы с переносом строк:
re=/<tr>[\s\S]*?<\/tr>/gm
s="<body>\n<tr><span>foo\n</span></tr>\nfoo<div>foo</div>\n<tr>bar</tr><tr>baz</tr></body>"
alert(s.match(re).join(""))

SokDobriy 01.12.2014 02:03

Вложений: 1
Блин, всё равно(
Да, остальные теги, которые между tr нужны. Просто стереть сам тег <p> и </p>.
Вот сам файл

krutoy 01.12.2014 02:09

SokDobriy,
Слушай, он ж у тебя бинарный, или хз. Его к текстовому виду надо как то приводить.

SokDobriy 01.12.2014 02:27

krutoy,
Я просто запаковал, там html внутри.
Я этот html открываю как файл юзерскриптом и читаю его.

krutoy 01.12.2014 02:30

SokDobriy,
я распаковал его, само сабой, это буфер какой-то, это не текстовый файл

SokDobriy 01.12.2014 02:54

krutoy,
Это html файл, который функцией читается как текстовый.

SokDobriy 01.12.2014 02:55

Или я что-то недопетриваю


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