Поиск с разбором и заменой
Необходимо средсвами 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, но видимо все позабыл. С чего начать? |
|
Вспомнил про 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 |
exvion,
Извините, но меня просто выводит из себя такие люди как вы. Вы нашли решение своей задачи где присутстуют две jQuery функции, не имеющих никакого отношения к решению задачи, но зато говорите слава богу что jQuery даровал нам регулярные выражения, фу. :-E |
Уважаемый, monolithed.
Где я говорил, что "слава богу что jQuery даровал нам регулярные выражения"? Я просто пояснил, что мне удалось написать нужный мне код не на чистом javascript, а с помощью jquery. И уточнил, что регулярное выражение очень простое, хотя в начале работы мне казалось, что оно будет очень сложным. Подзыбыл я работу с регулярными выражениями. |
можно было обойтись и без jQuery , он хотел сказать...
|
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 не нашел нужной функции. |
Цитата:
Цитата:
|
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;
|
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);
|
$('div.item')*!*.html()*/!*.match .....
|
melky, спасибо помогло, но оказалось еще была проблема с кодировкой.
|
| Часовой пояс GMT +3, время: 00:22. |