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

LungDesire 05.01.2016 20:55

Регулярные выражения!
 
Доброго времени суток друзья!
В переменной mass хранятся html теги, из которых нужно выбрать следующее:

"Москва" из => "Город: <strong>Москва</strong>"

"121299294" и "79030116***" из => "Телефон продавца: <a style="font-size: 14pt;" target=_blank href="http://avtomir.ru/a.aspx?control=20&offerid=121299294">79030116***</a>"

"1 099 000 руб." из => Цена: <strong>1 099 000 руб.</strong>

"-337 220 руб." из => "Рассчетное отклонение: <strong><span tooltip="628" style="color: #009900;">-337 220 руб.</span></strong>"

"8" из => "Количество объявлений: <strong style="color: red;font-size: 10pt;" >8</strong>"

"2" из => "Количество различных машин: <strong style="color: red;font-size: 10pt;" >2</strong>"

Спасибо за внимание, буду признателен за любую помощь. Удачи Вам друзья =)

Keramet 06.01.2016 20:57

А структуру mass можете показать? (это объект или массив?)

LungDesire 06.01.2016 23:45

В mass просто ответ от web страницы. Банальные html теги. Вряд ли тут будут смотреться html теги полной страницы)) Многовато выходит. Структура mass вероятнее всего - объект)

LungDesire 06.01.2016 23:54

Вот кусочек из mass:
<div><span id="exists"></span><table class=sale-info cellspacing=4 width=100% style="text-align: left; font-size:10pt; border:none;
font-weight: normal; font-family: Tahoma;"><tr style="border:none"><td style="text-align: left; border:none">Дата и время выхода:
<strong>04.01.2016 23:05</strong></td></tr><tr style="border:none"><td style="text-align: left; border:none">Город: <strong>Москва</strong>
</td></tr><tr style="border:none"><td style="text-align: left; border:none">
Телефон продавца: <a style="font-size: 14pt;" target=_blank href="http://avtomir.ru/a.aspx?control=20&offerid=121825824">79099728***</a>
</td></tr></tr><tr style="border:none"><td style="text-align: left; border:none">
Сотовый оператор: г. Москва и Московская область</td></tr>
<tr style="border:none"><td style="text-align: left; border:none">Цена: <strong>1 099 000 руб.</strong></td>
</tr><tr style="border:none"><td style="text-align: left; border:none">Рассчетное отклонение:
<strong><span tooltip="628" style="color: #009900;">-337 220 руб.</span></strong></td></tr><tr style="border:none">
<td style="text-align: left; border:none"><br />Количество объявлений:
<strong style="color: red;font-size: 10pt;" >78</strong><br />Количество различных машин: <strong style="color: red;font-size: 10pt;" >22</strong>
<br /><br /><br clear="all"/>

Как видно значения, которые необходимо извлечь - меняются!

Deff 07.01.2016 05:38

Вариант:
<script type="text/javascript">
window.onload = function() {
var str = document.getElementById('text').innerHTML;
alert(str.replace(/<[^<>]*>/gm,''));
};
</script>


<div id="text" style="display:none">


<div><span id="exists"></span><table class=sale-info cellspacing=4 width=100% style="text-align: left; font-size:10pt; border:none;
 font-weight: normal; font-family: Tahoma;"><tr style="border:none"><td style="text-align: left; border:none">Дата и время выхода:
 <strong>04.01.2016 23:05</strong></td></tr><tr style="border:none"><td style="text-align: left; border:none">Город: <strong>Москва</strong>
 </td></tr><tr style="border:none"><td style="text-align: left; border:none">
 Телефон продавца: <a style="font-size: 14pt;" target=_blank href="http://avtomir.ru/a.aspx?control=20&offerid=121825824">79099728***</a>
 </td></tr></tr><tr style="border:none"><td style="text-align: left; border:none">
 Сотовый оператор: г. Москва и Московская область</td></tr>
 <tr style="border:none"><td style="text-align: left; border:none">Цена: <strong>1 099 000 руб.</strong></td>
 </tr><tr style="border:none"><td style="text-align: left; border:none">Рассчетное отклонение: 
 <strong><span tooltip="628" style="color: #009900;">-337 220 руб.</span></strong></td></tr><tr style="border:none">
 <td style="text-align: left; border:none"><br />Количество объявлений: 
 <strong style="color: red;font-size: 10pt;" >78</strong><br />Количество различных машин: <strong style="color: red;font-size: 10pt;" >22</strong>
 <br /><br /><br clear="all"/>

</div>

</body>

LungDesire 07.01.2016 06:18

Спасибо за совет. Непременно учту ваше регулярное выражение =)

Keramet 07.01.2016 11:52

А на выходе что вы хотите получить? объект типа:
var rezult = {
   city:    "",
   offerId: "",
   phone:   "",
   ...
   kolAvto: ""
};

или что-то другое?
И сколько из mass надо результатов? (из каждой mass 1 результат, или в mass может быть сколько угодно результатов?

LungDesire 08.01.2016 16:37

Из mass по сути необходимо выбрать: [04.01.2016 23:05], [Москва], [121825824],[79099728***], [1 099 000 руб.],[-337 220 руб.],[78],[22]. В целом у каждого значения своё имя, так же как вы указали выше. Это возможно?

LungDesire 08.01.2016 16:39

В mass полный ответ от web страницы, так что все строки для поиска будут в mass - сколько угодно результатов!

Keramet 08.01.2016 21:08

А если так попробовать:
<!DOCTYPE html>
<html lang="ru">
<head>
	<meta charset="UTF-8"/>
	<title>IiT</title>
	<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
        <script>
		$(function() {
			var values = [],     // массив искомых значений
				txt;
			$("td").each(function(n) {
				txt = this.innerText;
				values.push( txt.substring(txt.indexOf(':')+1).trim() );
			});
			alert(values);
		});
	</script>
</head>

<body>
	<div><span id="exists"></span>
		<table class=sale-info cellspacing=4 width=100% style="text-align: left; font-size:10pt; border:none; font-weight: normal; font-family: Tahoma;">
			<tr style="border:none">
				<td style="text-align: left; border:none">Дата и время выхода:<strong>04.01.2016 23:05</strong></td>
			</tr>
			<tr style="border:none">
				<td style="text-align: left; border:none">Город: <strong>Москва</strong></td>
			</tr>
			<tr style="border:none">
				<td style="text-align: left; border:none">Телефон продавца: <a style="font-size: 14pt;" target=_blank href="http://avtomir.ru/a.aspx?control=20&offerid=121825824">79099728***</a></td>
			</tr>
			<tr style="border:none">
				<td style="text-align: left; border:none">Сотовый оператор: г. Москва и Московская область</td>
			</tr>
			<tr style="border:none">
				<td style="text-align: left; border:none">Цена: <strong>1 099 000 руб.</strong></td>
			</tr>
			<tr style="border:none">
			<td style="text-align: left; border:none">Рассчетное отклонение:<strong><span tooltip="628" style="color: #009900;">-337 220 руб.</span></strong></td>
			</tr>
			<tr style="border:none">
				<td style="text-align: left; border:none">Количество объявлений:<strong style="color: red;font-size: 10pt;" >78</strong></td>
			</tr>
			<tr style="border:none">
				<td style="text-align: left; border:none">Количество различных машин: <strong style="color: red;font-size: 10pt;" >22</strong></td>
			</tr>
		</table>
	</div>
</body>
</html>


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