Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярные выражения (https://javascript.ru/forum/misc/50840-regulyarnye-vyrazheniya.html)

kirilvlasuk 13.10.2014 19:55

Регулярные выражения
 
Всем привет, начал работать над одним проектом по парсингу и возникла проблема украсть данную строку. Нужно регулярное выражение для данной строки.
<a onclick="document.fireEvent('goodsTitleClick',{extend_event:[{name:'goods_id',value:1558037}]});" href="http://ссылка">
			текст
			</a>

Собственно меняться будет только "текст" все остальное статично. Кстати пробелы и перенос так же нужны.

Если кто знает как помочь буду очень благодарен.

danik.js 13.10.2014 19:59

А если заюзать HTML-парсер? Это клиентский или серверный скрипт?

ksa 13.10.2014 20:07

Цитата:

Сообщение от kirilvlasuk
Если кто знает как помочь буду очень благодарен

Как вариант...

<div id='test'>
<a onclick="document.fireEvent('goodsTitleClick',{extend_event:[{name:'goods_id',value:1558037}]});" href="http://ссылка">
            текст
            </a>
</div>
<script type='text/javascript'>
var str=document.getElementById('test').innerHTML;
alert('"'+str.match(/>([\s\S]*)(?=<\/)/)[1]+'"');
</script>

kirilvlasuk 13.10.2014 20:08

Клиент.

kirilvlasuk 13.10.2014 20:15

Цитата:

Сообщение от danik.js (Сообщение 335280)
А если заюзать HTML-парсер? Это клиентский или серверный скрипт?

Что за HTML парсер?

danik.js 13.10.2014 20:19

Ну если кроссбраузерность не нужна, то можно заюзать DOMParser

<textarea id='test'>
<body>
<a onclick="document.fireEvent('goodsTitleClick',{extend_event:[{name:'goods_id',value:1558037}]});" href="http://ссылка">
            текст
            </a>
</body>
</textarea>
<script>
(function(){

var parser = new DOMParser();
var doc = parser.parseFromString(test.value, 'text/html');
var link = doc.getElementsByTagName('a')[0];
alert(link.outerHTML);
})();
</script>


outerHTML - тоже не кроссбраузерное свойство, но это решаемо.

kirilvlasuk 13.10.2014 20:33

Цитата:

Сообщение от danik.js (Сообщение 335284)
Ну если кроссбраузерность не нужна, то можно заюзать DOMParser

<textarea id='test'>
<body>
<a onclick="document.fireEvent('goodsTitleClick',{extend_event:[{name:'goods_id',value:1558037}]});" href="http://ссылка">
            текст
            </a>
</body>
</textarea>
<script>
(function(){

var parser = new DOMParser();
var doc = parser.parseFromString(test.value, 'text/html');
var link = doc.getElementsByTagName('a')[0];
alert(link.outerHTML);
})();
</script>


outerHTML - тоже не кроссбраузерное свойство, но это решаемо.

Дело в том что там очень много тегов "а" и их содержимое очень похоже. Так что нужно максимально приближено. Вот черканул регулярку но что то не работает, можешь подсказать что не так.
var found = textCut[0].match(/<a onclick="document.fireEvent('goodsTitleClick',{extend_event:[{name:'goods_id',value:.*}]});" href="http:\/\/rozetka.com.ua\/.*\/">\s.*\s<\/a>/);


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