[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: регулярное выражение
olgatcpip
Здравствуйте.

Задача: подсчитать сколько ссылок в тексте.

На php я составила регулярное выражение.
PHP
preg_match_all('/.*(<a[\s]*href="(.+)"[\s]*[^>]*>.+<\/a>).*/sU'$data['newText'], $matches))

Тут я беру count($matches[1])

А как это же сделать на javascript?





Спустя 16 минут, 32 секунды (5.08.2009 - 11:41) Sylex написал(а):
olgatcpip
по-моему проще гораздо smile.gif

Спустя 11 минут, 53 секунды (5.08.2009 - 11:53) Sylex написал(а):
HTML
<script type="text/javascript">
alert($('A').length);
</script>

Спустя 35 минут, 20 секунд (5.08.2009 - 12:28) olgatcpip написал(а):
Sylex
не поняла.
Код

var str = '<a hret="121212.ru">jjkj</a>fgfgfgfgf<a hret="121212.ru">jjkj</a>';
куда мне написать alert($('A').length); ?
я такого синтаксиса даже не понимаю, объясните, пожалуйста.

Спустя 7 минут, 35 секунд (5.08.2009 - 12:36) gooder отдыхающий написал(а):
olgatcpip
jquery.com

Спустя 5 минут, 52 секунды (5.08.2009 - 12:42) olgatcpip написал(а):
Так, понятно. Подключить библиотеку у нас пока не вожможно.
Как решить мою проблему без jquery?

Спустя 39 секунд (5.08.2009 - 12:43) olgatcpip написал(а):
не придерайте к словам.

Спустя 18 минут, 35 секунд (5.08.2009 - 13:01) gooder отдыхающий написал(а):
Цитата (olgatcpip @ 5.08.2009 - 12:43)
не придерайте к словам.

кто придерается?

почему нельзя подключить?

Спустя 59 минут, 30 секунд (5.08.2009 - 14:01) olgatcpip написал(а):
Цитата
кто придерается?
я заранее.
как раз из-за этого вопроса написала
Цитата
почему нельзя подключить?

Потому, что это можно решить без jquery, но к сожалению яя не знаю как.
Примите, что подключение jquery - не вариант.
Я вас прошу подсказать, пожалуйста. Есть ещё вариант?

Спустя 7 минут, 42 секунды (5.08.2009 - 14:08) sergeiss написал(а):
Я лично с регулярками в JS не работал, но знаю, что надо использовать объект RegExp. Инфо о том, как работать с этим объектом можно почитать, например, в Яндексе.

PS. И в Википедии можно глянуть.

Спустя 16 минут, 42 секунды (5.08.2009 - 14:25) olgatcpip написал(а):
sergeiss, спасибо, я первым делом тама смотрела. rolleyes.gif

Спустя 13 минут, 8 секунд (5.08.2009 - 14:38) sergeiss написал(а):
Цитата (olgatcpip @ 5.08.2009 - 15:25)
sergeiss, спасибо, я первым делом тама смотрела. rolleyes.gif

Ну так и что?

Вот по второй же ссылке видим подробное описание того, как с этим объектом (RegExp) работать. Подробнее просто некуда, по-моему.

Спустя 3 часа, 33 минуты, 44 секунды (5.08.2009 - 18:12) FatCat написал(а):
Сам джаваскрипт вот такой:
HTML
<script type="text/javascript">
var str = 'q<a href="121212.ru">jjkj</a>fgfgfgfgf<a href="121212.ru">jjkj</a>';
stp = str.split(/.*(<a[\s]*href="(.+)"[\s]*[^>]*>.+<\/a>).*/).length-1;
alert(stp);
</script>

Но что-то в регулярке не верно...


Малость упростил регулярку, так работает:
HTML
<script type="text/javascript">
var str = 'q<a href="121212.ru">jjkj</a>fgfgfgfgf<a href="121212.ru">jjkj</a>';
stp = str.split(/<a *href=/).length-1;
alert(stp);
</script>

Спустя 13 минут, 26 секунд (5.08.2009 - 18:25) kirik написал(а):
А зачем регулярки? Sylex показал же как нужно.. Если не хочешь jQuery, то этот скрипт поможет:
Код
var str = 'q<a href="121212.ru">jjkj</a>fgfgfgfgf<a href="121212.ru">jjkj</a>';
var container = document.createElement('div');
container.innerHTML = str;
var aNum = container.getElementsByTagName('a').length;
alert(aNum);

Спустя 2 минуты, 15 секунд (5.08.2009 - 18:28) FatCat написал(а):
kirik
Это уже джаваскрипт 1.2, если не 1.3... А я стараюсь где можно на 1.0 писать, чтобы везде работало одинаково.

Спустя 4 минуты, 7 секунд (5.08.2009 - 18:32) Sylex написал(а):
по-моему надо идти другим путем

Спустя 2 минуты, 12 секунд (5.08.2009 - 18:34) olgatcpip написал(а):
Код
var reg=/[\S\s]*(<a[\s]*href="(.+)"[\s]*[^>]*>.+<\/a>)[\S\s]*/
var arr=reg.exec(prilavokBase.buyTextarea.value);

вот это я напридумывала.

Но как подсчитать количество найденых ссылок?

Спустя 13 секунд (5.08.2009 - 18:34) Sylex написал(а):
kirik
верно, тока зачем контейнер? Я понял надо во всем документе:

HTML
<script type="text/javascript">
var aNum = document.getElementsByTagName('a').length;
alert(aNum);
</script>

Спустя 1 минута, 27 секунд (5.08.2009 - 18:36) Sylex написал(а):
тьфу, туплю... надо же в тексте заданном, да?

Спустя 1 минута, 6 секунд (5.08.2009 - 18:37) olgatcpip написал(а):
kirik
FatCat
Спасибо, сейчас пробовать буду.

Спустя 3 минуты, 3 секунды (5.08.2009 - 18:40) kirik написал(а):
Цитата (Sylex @ 5.08.2009 - 10:34)
верно, тока зачем контейнер? Я понял надо во всем документе

Да фик знает.. smile.gif Задача-то толком не описана, но судя из PHPшного примера, нужно из заданного текста..

Спустя 1 минута, 16 секунд (5.08.2009 - 18:41) olgatcpip написал(а):
kirik
Воспользовалась твоим. такое простое решение.....


_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький блог
в этом блоге публикую новые работы
WMR217126627282 wink.gif

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.