Клик по ссылке, которая начинается с определенного символа

Обсуждение работы системы JetSwap. Общий форум для всех вопросов, для которых не создано отдельных форумов.
dgusarov
Сообщения: 7
Зарегистрирован: 07 окт 2011, 10:53

Клик по ссылке, которая начинается с определенного символа

Непрочитанное сообщение dgusarov »

Здравствуйте. У меня один мелкий вопрос. Я хочу кликнуть по случайной ссылке на сайте, начинающейся со слеша, например "/news", "/register" и т.д. Сделал презентацию из одной команды клик: <set(search=regexp)>a;link;/^\/.+/i;-1, но при тестировании пишет, что не найдено ни одно совпадение. Возможно я что-то напутал в регулярном выражении. Не могли бы вы поправить или предложить другой более простой вариант (если такой есть) для моего варианта?

Аватара пользователя
loller5
Сообщения: 2549
Зарегистрирован: 28 ноя 2010, 01:32
Откуда: Из гнезда.

Re: Клик по ссылке, которая начинается с определенного симво

Непрочитанное сообщение loller5 »

Код: Выделить всё

var a = location;
var a = a.toString();
var b = a.match('/^\/.+/i');
alert(b)
В FireBuge ваша конструкция возвращает null, хотя в локейшене есть слешы.

dgusarov
Сообщения: 7
Зарегистрирован: 07 окт 2011, 10:53

Re: Клик по ссылке, которая начинается с определенного симво

Непрочитанное сообщение dgusarov »

Хм, то что мой вариант не работает я и сам в курсе. Я спрашивал о том, не может ли здесь кто-то подсказать что нужно исправить?
^ - начало входных данных
\/ - экранируем слеш
.+ любой символ повторенный 1 и более раз
все это обрамляем в // (как в инструкции написано) и использую флаг i (регистр не важен, но здесь это по идее ни на что не влияет)

то есть ищу ссылки у которых href строго начинается с /, а далее какие-то любые символы.

dgusarov
Сообщения: 7
Зарегистрирован: 07 окт 2011, 10:53

Re: Клик по ссылке, которая начинается с определенного симво

Непрочитанное сообщение dgusarov »

Кстати, в том же файрбаге

Код: Выделить всё

str = "/news";
re = /^\/.+/i;
found = str.match(re);
alert(found);
возвращает /news, как мне и надо

Код: Выделить всё

str = "localhost/news";
re = /^\/.+/i;
found = str.match(re);
alert(found);
возвращает null, тоже корректно

promot
Сообщения: 164
Зарегистрирован: 06 май 2011, 09:26

Re: Клик по ссылке, которая начинается с определенного симво

Непрочитанное сообщение promot »

во-первых, если ссылка

Код: Выделить всё

<a id="test" href="/memberlist.php?mode=viewprofile&u=11083">dgusarov</a>
то если в кавычках, то так

Код: Выделить всё

document.getElementById('test').getAttribute('href').match('^/.+')
без них

Код: Выделить всё

document.getElementById('test').getAttribute('href').match(/^\/.+/)
по отношению к джету зависит от реализации в программе, если там ссылка получается как то надо в регулярке писать и протокол и домен, а если ссылка получается так

Код: Выделить всё

a.getAttribute('href')
то видимо так /.+

Но проще загрузить jQuery и сделать так

Код: Выделить всё

$('a[href^=\\/]').eq(Math.floor(Math.random() * $('a[href^=\\/]').length)).click()

dgusarov
Сообщения: 7
Зарегистрирован: 07 окт 2011, 10:53

Re: Клик по ссылке, которая начинается с определенного симво

Непрочитанное сообщение dgusarov »

Если кому интересно, то проблема решилась указанием протокола, домена и слеша с экранированием всех точек и слешей. Вообщем, неочевидная для меня была вещь. Господину promot спасибо за наводку.

Ответить