Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   нужна помощь с регуляркой (https://javascript.ru/forum/misc/39343-nuzhna-pomoshh-s-regulyarkojj.html)

egorea1999 26.06.2013 08:26

нужна помощь с регуляркой
 
нужно чтобы из такой строки: <h1>2 x <a href="/story.php?title=War-Thunder_1000-%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D1%8B%D1%85-%D0%BE%D1%80%D0%BB%D0%BE%D0%B2">War Thunder - 1000 Золотых орлов</a></h1>

вырезалось только это(парсилось регуляркой): War Thunder - 1000 Золотых орлов

есть такая регулярка: <h1>(.*?)</a></h1> , но к сожалению он парсит только так:

2 x <a href="/story.php?title=War-Thunder_1000-%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D1%8B%D1%85-%D0%BE%D1%80%D0%BB%D0%BE%D0%B2">War Thunder - 1000 Золотых орлов

sexyQuery 26.06.2013 08:46

document.getElementsByTagName('h1')[0].innerText

sexyQuery 26.06.2013 08:47

если регуляркой, то

/([^>]+)<\/a><\/h1>/.exec(s)[1]
"War Thunder - 1000 Золотых орлов"

egorea1999 26.06.2013 08:48

Цитата:

Сообщение от sexyQuery (Сообщение 258521)
document.getElementsByTagName('h1')[0].innerText

о_О

я такое не понимаю, извините, а можно код такого типа, как у меня?:blink:

egorea1999 26.06.2013 08:49

Цитата:

Сообщение от sexyQuery (Сообщение 258522)
если регуляркой, то /([^>]+)</a></h1>/

не, не выходит :(

egorea1999 26.06.2013 08:50

Нашел такую регулярку:

<h1>.+<a[^>]+>(.*?)</a></h1>


Вот, всё классно:

=======Покупки=======
War Thunder - Глобальная Бета
War Thunder - Продвинутый набор &quot;Дора&quot;
War Thunder - Доступ в Бета-тест


НО

не парсит такую строку:
<h1>2 x <a href="/story.php?title=War-Thunder_1000-%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D1%8B%D1%85-%D0%BE%D1%80%D0%BB%D0%BE%D0%B2">War Thunder - 1000 Золотых орлов</a></h1>

а другие без 2x парсит....

____________
Ну или хотя бы чтобы этот 3x не парсило,а название покупки: War Thunder - 1000 Золотых орлов парсило

sexyQuery 26.06.2013 08:51

см мое сообщение

Цитата:

Сообщение от sexyQuery (Сообщение 258522)
если регуляркой, то

/([^>]+)<\/a><\/h1>/.exec(s)[1]
"War Thunder - 1000 Золотых орлов"


sexyQuery 26.06.2013 08:52

s - исходная строка

egorea1999 26.06.2013 08:53

Цитата:

Сообщение от sexyQuery (Сообщение 258526)
см мое сообщение



хоть бы хны

sexyQuery 26.06.2013 08:59

регулярка правильная, другое дело если заголовков h1 больше одного, либо ты не там ищешь

egorea1999 26.06.2013 09:09

Цитата:

Сообщение от sexyQuery (Сообщение 258530)
регулярка правильная, другое дело если заголовков h1 больше одного, либо ты не там ищешь

там ищу, но не работает

_http://rghost.ru/private/47022907/6e16a78318da56c52f7cb7dc57ca8757 вот html код...

Deff 26.06.2013 10:34

var str='<h1>2 x <a href="/story.php?title=War-Thunder_1000-%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D1%8B%D1%85-%D0%BE%D1%80%D0%BB%D0%BE%D0%B2">War Thunder - 1000 Золотых орлов</a></h1>';
var text = str.replace(/^<h1>[^<>]*<a[^<>]*>([^<>]+)<\/a>[^<>]*<\/h1>$/img,"$1");
alert(text)

рони 26.06.2013 11:04

var str='<h1>2 x <a href="/story.php?title=War-Thunder_1000-%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D1%8B%D1%85-%D0%BE%D1%80%D0%BB%D0%BE%D0%B2">War Thunder - 1000 Золотых орлов</a></h1>';
var text = str.replace(/^<h1.*?([^>]+)<\/a>.*?$/img,"$1");
alert(text)

Gozar 16.07.2013 18:02

var str='<h1>2 x <a href="/story.php?title=War-Thunder_1000-%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D1%8B%D1%85-%D0%BE%D1%80%D0%BB%D0%BE%D0%B2">War Thunder - 1000 Золотых орлов</a></h1>';
var text = str.match(/[^><]+(?=<)/img)[1];
alert(text)


Покажи несколько строк, а то ведь регулярки могут быть разные.

nerv_ 16.07.2013 18:16

var box = document.createElement( 'div' );
var str='<h1>2 x <a href="/story.php?title=War-Thunder_1000-%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D1%8B%D1%85-%D0%BE%D1%80%D0%BB%D0%BE%D0%B2">War Thunder - 1000 Золотых орлов</a></h1>';

box.innerHTML = str;
      
alert( box.querySelector( 'a' ).innerHTML )


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