Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.11.2014, 04:52
Интересующийся
Отправить личное сообщение для Xant1k Посмотреть профиль Найти все сообщения от Xant1k
 
Регистрация: 08.03.2012
Сообщений: 13

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

Пример:
<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>
Ответить с цитированием
  #2 (permalink)  
Старый 16.11.2014, 06:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<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>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 16.11.2014, 13:22
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

<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>

Последний раз редактировалось krutoy, 16.11.2014 в 13:49.
Ответить с цитированием
  #4 (permalink)  
Старый 16.11.2014, 13:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

krutoy,
зачем?
Ответить с цитированием
  #5 (permalink)  
Старый 16.11.2014, 13:29
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

krutoy, зачем парсить HTML если в браузер уже встроен парсер?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 16.11.2014, 13:33
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

рони,
danik.js,
А может он захочет распарсить из консоли
Ответить с цитированием
  #7 (permalink)  
Старый 16.11.2014, 13:43
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от krutoy
А может он захочет распарсить из консоли
для этого есть конструктор документа или фрагмента, куда можно поместить HTML и делать с ним все что душа пожелает
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 16.11.2014, 18:04
Интересующийся
Отправить личное сообщение для Xant1k Посмотреть профиль Найти все сообщения от Xant1k
 
Регистрация: 08.03.2012
Сообщений: 13

danik.js,
Отлично!
Только вот для match ещё хотелось бы поменять регулярку чтобы искала английский текст c годом и ещё могут встречаться символы "-", ":" и т.д. до тэга span.
Покамесь получилась с такой регуляркой /[\w]+/ но учитывает только первое слово.
Ответить с цитированием
  #9 (permalink)  
Старый 16.11.2014, 18:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А флаги зачем выбросил? g - поиск всех совпадений.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #10 (permalink)  
Старый 17.11.2014, 02:02
Интересующийся
Отправить личное сообщение для Xant1k Посмотреть профиль Найти все сообщения от Xant1k
 
Регистрация: 08.03.2012
Сообщений: 13

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

Последний раз редактировалось Xant1k, 17.11.2014 в 02:08.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема со scroll Chrome Элементы интерфейса 2 21.10.2013 14:46
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
нужно заставить одновременно работать слайдер и модальное окно обратной связи kvant355 Javascript под браузер 3 22.07.2013 16:34
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03