Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   перебор ссылок (https://javascript.ru/forum/events/43559-perebor-ssylok.html)

dmitriyk 11.12.2013 13:13

перебор ссылок
 
Хочу сделать скрипт который будет искать на странице ссылки определенного вида и заменять их, как я понимаю надо тут делать с помощью регулярных выражений, но я их еле смог начать понимаю на PhP чую на js убью еще кучу времени

На примере есть ссылка
href="../../2/2053/index.htm"


Надо превратить ее например в
href="/file.php?url=2/2053


Причем затронуть надо все ссылки начинающиеся с ../../

Буду рад любой помощи.
Спасибо

ksa 11.12.2013 13:44

Цитата:

Сообщение от dmitriyk
затронуть надо все ссылки начинающиеся с ../../

Это понятно. :yes:

Цитата:

Сообщение от dmitriyk
На примере есть ссылка
href="2/2053/index.htm"

Надо превратить ее например в
href="/file.php?url=2/2053

А вот тут нужно кагбэ знать по какому принципу "что" превращать и "во что"...

lancer 11.12.2013 13:45

Цитата:

чую на js убью еще кучу времени
Считываем href и находим тут регулярные выражения, учим, пробуем.
Вы не хотите ничего делать, а готовое решение, за это надо отсекать голову.

ksa 11.12.2013 13:58

Цитата:

Сообщение от dmitriyk
затронуть надо все ссылки начинающиеся с ../../

Как вариант...

var str="../../2/2053/index.htm"
var r=/^\.\.\/\.\.\//
alert(r.test(str));
str="../2/2053/index.htm"
alert(r.test(str));

ksa 11.12.2013 13:59

Цитата:

Сообщение от lancer
а готовое решение, за это надо отсекать голову

Ух, ёооо... :blink:

dmitriyk 11.12.2013 14:00

Цитата:

Сообщение от ksa (Сообщение 286024)
Это понятно. :yes:


А вот тут нужно кагбэ знать по какому принципу "что" превращать и "во что"...

href="2/2053/index.htm" в href="/file.php?url=2/2053

То что выделил

Найти все ссылки заменить урлы могу, проблема именно в работе регулярок(тоесть вытащить нужную часть)

ksa 11.12.2013 14:04

Цитата:

Сообщение от dmitriyk
href="2/2053/index.htm" в href="/file.php?url=2/2053

Это уже правило... :yes:

ksa 11.12.2013 14:12

Цитата:

Сообщение от dmitriyk
href="2/2053/index.htm" в href="/file.php?url=2/2053

Как вариант...

var str="../../2/2053/index.htm";
var org="/file.php?url=2/2053";
var r=/^\.\.\/\.\.\/(\d+)\/(\d+)\/[\s\S]*/
alert(str.replace(r,'/file.php?url=$1/$2')==org);

dmitriyk 11.12.2013 14:14

Спасибо огромное, пошел писать функциюполностью

dmitriyk 11.12.2013 14:29

Хмм, вот он подводный камень, в документе ссылка идет с ../../ а вот в
document.links[i].href уже http://localhost/
Можно как то выцепить изначальный вариант?

ksa 11.12.2013 14:56

Цитата:

Сообщение от dmitriyk
Можно как то выцепить изначальный вариант?

Конечно. :yes:

var str="http://localhost/2/2053/index.htm";
var r=/^http:\/\/localhost\/(\d+)\/(\d+)\/[\s\S]*/
alert(str.replace(r,'/file.php?url=$1/$2'));

dmitriyk 11.12.2013 14:57

Второй +сик в карму поставить не могу, Спасибо


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