Avatar
Martin Štěpánek (Enormyk):

Ahoj,
já nejsem přes Javascript moc dobrý natož přes regulární výrazy.
Mohl by mi tu někdo prosím sestavit script, který by změnil url podle příkladu? :-)
Z http://mojeadresa.wz.cz?… udělá http://mojeadresa.wz.cz/clanky.php
Z http://mojeadresa.wz.cz?… udělá http://mojeadresa.wz.cz/clanek.php?…
atd...
(Aby vzal parametr stranka jako název souboru a zbytek jako parametry.)
Myslím to obecně ne jen tento příklad.
Předem moc děkuji za pomoc. :-)
M.

Odpovědět 17. dubna 21:30
Nesnáším, když někdo u if nepoužívá {}, byť se jedná o jeden řádek.
Avatar
Lako
Člen
Avatar
Odpovídá na Martin Štěpánek (Enormyk)
Lako:

(.\/)(\?stran­ka=)(\w+)(.)

A replace:
$1$3.php$4\n

Ten replace půjde i jinak.
Nevím jak s javascriptem, ale tu to funguje fajn:
http://regexr.com/3d7v1

 
Nahoru Odpovědět 17. dubna 22:06
Avatar
Lako
Člen
Avatar
Odpovídá na Lako
Lako:

Edit: Nemá to být kurzíva, ale za tečkou je hvězdička, viz odkaz.

 
Nahoru Odpovědět 17. dubna 22:11
Avatar
Nahoru Odpovědět 18. dubna 6:54
Nesnáším, když někdo u if nepoužívá {}, byť se jedná o jeden řádek.
Avatar
Lako
Člen
Avatar
Odpovídá na Martin Štěpánek (Enormyk)
Lako:

Zkus tohle: (.hvezda\/)(\?stran­ka=)(\w+)&?(.hvez­da)

Jediný problém s tím je ten, že pokud tam nemáš žádné atributy, tak ti na konci zůstane otazník.

To vyřešíš tím, že to projedeš podruhé tímto:
(.+)(\?)\s

http://regexr.com/3d854

Možná to jde v jednom kroku, ale takto to snad bude stačit.

 
Nahoru Odpovědět 18. dubna 21:56
Avatar
1Pupik1989
Člen
Avatar
1Pupik1989:

A co třeba použít callback?

var regex = /\?stranka=([^\&]+)(?:&(.*))?$/;

var x = [
  'http://mojeadresa.wz.cz/?stranka=clanky',
  'http://mojeadresa.wz.cz/?stranka=clankek&id=18'
];

var result;

for(var i=0;i<x.length;i++){
  result = x[i].replace(regex,function(m,page,attrs){
    return attrs ? page+'.php?'+attrs : page+'.php';
  });

  console.log(result);
}
 
Nahoru Odpovědět 19. dubna 11:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.