Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярка. Вытащить текст из тега (https://javascript.ru/forum/misc/51690-regulyarka-vytashhit-tekst-iz-tega.html)

Xant1k 16.11.2014 04:52

Регулярка. Вытащить текст из тега
 
Нужно забирать английский текст внутри тега <div class="me"> :help:

Пример:
<div class="me"><a stop-start_id="15" class="mLink tok" href="./product_info.php?t=220">спортивные новости / sportnews <span class="tor">(2011, author. / автор)</span> <span class="tor">[block, 12]</span> Free</a></div>

danik.js 16.11.2014 06:22

<div class="me"><a stop-start_id="15" class="mLink tok" href="./product_info.php?t=220">спортивные новости / sportnews <span class="tor">(2011, author. / автор)</span> <span class="tor">[block, 12]</span> Free</a></div>
<script>
(function() {
var node = document.querySelector('.me');
var text = 'innerText' in node ? node.innerText : node.textContent; // Fuck Mozilla
var matches = text.match(/[a-z]+/gmi);
alert(matches);
})();
</script>

krutoy 16.11.2014 13:22

<html>
<head>
<meta charset="windows-1251" />
</head>
<body>
<script>


str='фууfoo<div class="me"><a stop-start_id="15" class="mLink tok" href="./product_info.php?t=220">спортивные новости / sportnews <span class="tor">(2011, author. / автор)</span> <span class="tor">[block, 12]</span> Free</a></div>barфуу'


re=/.*<div\s+class\s*=\s*['"]\s*me\s*['"]\s*>(.*)<\/div\s*>.*/g
str=str.replace(re, "$1")
str=str.replace(/<[^>]*>/g, "")
str=str.replace(/[^\w]+/g, " ")
alert(str)
</script>
</body>
</html>

рони 16.11.2014 13:29

krutoy,
зачем?

danik.js 16.11.2014 13:29

krutoy, зачем парсить HTML если в браузер уже встроен парсер?

krutoy 16.11.2014 13:33

рони,
danik.js,
А может он захочет распарсить из консоли:)

devote 16.11.2014 13:43

Цитата:

Сообщение от krutoy
А может он захочет распарсить из консоли

для этого есть конструктор документа или фрагмента, куда можно поместить HTML и делать с ним все что душа пожелает

Xant1k 16.11.2014 18:04

danik.js,
Отлично!
Только вот для match ещё хотелось бы поменять регулярку чтобы искала английский текст c годом и ещё могут встречаться символы "-", ":" и т.д. до тэга span.
Покамесь получилась с такой регуляркой /[\w]+/ но учитывает только первое слово.

danik.js 16.11.2014 18:22

А флаги зачем выбросил? g - поиск всех совпадений.

Xant1k 17.11.2014 02:02

Потому-что с флагами перечислять начинает все английские слова из строки через запятую.
Ещё один нюанс: регулярка /[\w]+/ берёт например у It's только первую букву. С этим моментом ещё бы разобраться.


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