Diskuze: Regulární výraz
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
(.\/)(\?stranka=)(\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
Edit: Nemá to být kurzíva, ale za tečkou je hvězdička, viz odkaz.
Super dík, akorát to udělá
http://mojeadresa.wz.cz/…ek.php&id=18
Ale já právě potřebuji http://mojeadresa.wz.cz/clankek.php?… (otazník)
Zkus tohle: (.hvezda\/)(\?stranka=)(\w+)&?(.hvezda)
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
Možná to jde v jednom kroku, ale takto to snad bude stačit.
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);
}
Zobrazeno 6 zpráv z 6.