Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поиск с разбором и заменой (https://javascript.ru/forum/misc/19049-poisk-s-razborom-i-zamenojj.html)

exvion 24.07.2011 15:45

Поиск с разбором и заменой
 
Необходимо средсвами javascript найти в тексте все конструкции следующего вида:

<td class="row1"><span class="forumlink"><a href="viewforum.php?f=61" class="forumlink">Название форума</a></span></td>


Извлечь чему равен f (в данном случае f=61). И добавить это значение к Названию форума. В итоге будет:

<td class="row1"><span class="forumlink"><a href="viewforum.php?f=61" class="forumlink">61  Название форума</a></span></td>


Несколько лет назад работал с регулярными выражениями на php, но видимо все позабыл. С чего начать?

Sweet 24.07.2011 16:47

Регулярные выражения

exvion 24.07.2011 17:17

Вспомнил про jquery и все оказалось до банального просто.
$(document).ready(function()
{
$("a.forumlink").each(function()
   { 
	var forumNum=this.href.match(/viewforum.php\?f=([0-9]+)/)[1];
        this.text=forumNum+' '+this.text;
    });
});

Полезные ссылки:
http://stackoverflow.com/questions/1...k-using-jquery
http://stackoverflow.com/questions/8...-from-href-tag

monolithed 24.07.2011 17:40

exvion,
Извините, но меня просто выводит из себя такие люди как вы.
Вы нашли решение своей задачи где присутстуют две jQuery функции, не имеющих никакого отношения к решению задачи, но зато говорите слава богу что jQuery даровал нам регулярные выражения, фу. :-E

exvion 24.07.2011 23:26

Уважаемый, monolithed.
Где я говорил, что "слава богу что jQuery даровал нам регулярные выражения"?
Я просто пояснил, что мне удалось написать нужный мне код не на чистом javascript, а с помощью jquery. И уточнил, что регулярное выражение очень простое, хотя в начале работы мне казалось, что оно будет очень сложным. Подзыбыл я работу с регулярными выражениями.

melky 24.07.2011 23:40

можно было обойтись и без jQuery , он хотел сказать...

exvion 25.07.2011 11:16

melky, я не знаю как написать это без jQuery. У меня получилось вот так, но код не проверял.
<script type="text/javascript">
   var f1 = document.getElement('a').getElementsByClassName('forumlink')
     for (var i=0; i<f1.length; i++)
	     var forumNum= f1[i].href.match(/viewforum.php\?f=([0-9]+)/)[1];
	         f1[i].text=forumNum+' '+ f1[i].text;
}
 
</script>

Возникли вопросы. Как получить все элементы <a></a>? В javascript не нашел нужной функции.

kobezzza 25.07.2011 11:21

Цитата:

var f1 = document.getElement('a').getElementsByClassName('f orumlink')
WTF?!
Цитата:

Возникли вопросы. Как получить все элементы <a></a>? В javascript не нашел нужной функции.
document.getElementsByTagName("a");

melky 25.07.2011 11:38

var f1 =document.getElementsByTagName('a'), b = f1.length;

while ( b-- ) 
    if ( f1[b].className === 'forumlink' )
        f1[b].innerHTML = f1[b].href.match(/viewforum.php\?f=([0-9]+)/)[1]+' '+  f1[b].innerHTML;

exvion 25.07.2011 13:35

kobezzza, melky, спасибо.

Продолжаю разбираться с регулярными выражениями. Стоит задача извлечь дату со страницы.

<div class="item">
			<b>Количество:</b> 72<br>
			<b>Дата:</b> 25.07.2011 <br>
                        <b>Цена:</b> 104<br>
	</div>


Пробую так - не работает.
var data=$('div.item').match(/<b>Дата:<\/b>([^<]*)<br>/);
	alert(data);


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