Найдите любой тип URL и замените текст "нажмите здесь" на регулярное выражение jquery. - PullRequest
0 голосов
/ 05 марта 2011

Мне нужен небольшой скрипт в jQ, потому что я должен изменить длинные URL-адреса на сокращенный текст "нажмите здесь". Я хочу изменить только текст URL, а не значение атрибута href следующим образом:

<a href="http://verylongurl.ext/ohshitwhatlongisit/yaythatstoolongforme">http://verylongurl.ext/ohshitwhatlongisit/yaythatstoolongforme</a> 

до ..

<a href="http://verylongurl.ext/ohshitwhatlongisit/yaythatstoolongforme">click here</a>

Сценарий должен работать с любым возможным типом URL, например: http: https: ftp: и т. Д. *

tyvm девушки и парни!

Regs!

Ответы [ 3 ]

1 голос
/ 05 марта 2011

Следующий поиск выполняет поиск ссылок, текст которых начинается с XXXX://, где X - любое количество непробельных символов и заменяет текст на «Нажмите здесь»:

$('a').each(function(i,elem){
    $this = $(elem);
    text = $this.html();
    if (text.search(/\S*:\/\//) == 0) {
        $this.html('Click here');
    }
});

Вот демоверсия.


Или, как Феликс упоминает ниже, более короткий способ написать это будет:

$('a').filter(function(){
                return $(this).text().search(/\S*:\/\//) == 0;
              })
      .text('Click here');
1 голос
/ 05 марта 2011

Другой способ:

$('a').filter(function(){
    return $(this).text().indexOf('://') > -1;
}).text('Click here');

Если мы можем предположить, что :// содержится только в URL-адресах, а не в другом тексте, это будет работать.Регулярное выражение не требуется.

Ссылка: .filter()

0 голосов
/ 05 марта 2011

как это?

jQuery("a").text("click here");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...