Most figyeltem, hogy Javascript esetében is lehet használni azokat a bizonyos reguláris kifejezéseket. Hogy ez miért jó? Többek között azért, mert pl. az idézőjeleket „” jelekké lehet cserélni, de úgy, hogy a forrásban nem történik változtatás. Ennek akkor van előnye, ha hivatkozást írok, mert pl. a PHP regexe lazán lecserélné az <a href="">
elemet egy ilyenre: <a href=„” >
, ami nem jó. Egyelőre ismerkedem vele, aztán meglátjuk mit lehet összehozni. A trükkre egyébként
egy szmájlis segédletnél találtam.
Meg is van. A dolog igen egyszerű, van ugye az alap jávaszkript (az én esetemben ez a java.js fájl), amibe teszünk egy ilyet:
function regexReplace() {
if(!document.getElementById) {
return;
}
bodyContent = document.getElementById("body");
replaceContent = bodyContent.innerHTML;
replaceContent = replaceContent.replace(/\"(.*?)\"/g,'„$1”');
bodyContent.innerHTML = replaceContent;
}
Ez rendkívül egyszerű módon a két idézőjel közé zárt szöveget, szépen alul nyíló, és fent záródó jellé változtatja. Persze, elengedhetetlen, hogy a <body>
elemnél egy apróbb módosítást kivitelezzünk, ily módon:
<body onload="regexReplace();">
Ez meghívja a függvényt, de értelemszerűen korábban (a <head>
) részben meg kell hívni, vagy definiálni a jávaszkriptet. Eléggé új dolog ez még nekem, szóval lehet, hogy bogaras lesz.
Tetszett a bejegyzés?
Megköszönöm, ha nyomsz rá egy like-ot vagy megosztod másokkal:
chateve
2006. március 30. — 16:58:50
Csak most jöttél rá?:)
Haszprus
2006. március 30. — 17:48:06
szerintem ez a fenti function simán lecseréli a tagekben is az idézőjeleket. tévedek?
Haszprus
2006. március 30. — 17:49:33
teszt “teszt” teszt
Haszprus
2006. március 30. — 18:25:21
Nem nyúl bele de a böngésződ nyilván az átalakított tartalmat jeleníti meg márpedig a kódrészed alapján az egész body tartalmát lecseréli. A tagekkel együtt.
tiny
2006. március 30. — 20:58:38
Csak a forrást tudja változtatni, de bet9ltődés után. Plusz plz ne java legyen a neve, metr ez így olyan, mintha c#.vb fájl lenne.
Balázs
2006. március 31. — 07:24:37
Mefi, a javascript is lecseréli a tageken belül alkalmazott jeleket is. Akkor már inkább a php; a regexp nem csak arról szól, hogy megkeresel valamit, létezik-e, kicseréled, hanem arról is, hogy tudd, milyen módon alkalmazod. Nem megy ez neked, ne erőltesd.
Ralesk
2006. március 31. — 19:25:06
Miért lassabb? Szar a preg_* a PHP-ben talán? 🙂
Mefi
2006. július 22. — 12:27:48
Tudtam, hogy lehet használni, de nem foglalkoztam vele. 🙂
Mefi
2006. július 22. — 12:27:48
Még nem üzemel, mert egyrészt a következő dizájnba lészen, másrészt a CSS-ben is kell módosítani ahhoz, hogy működjön. De ez tudtommal nem nyúl bele a forrásba, vagy igen?
Mefi
2006. július 22. — 12:27:48
Hajj, volt egy pár elgépelés itt. 😀
Mefi
2006. július 22. — 12:27:48
PHP-ben nem fogom megcsinálni, mert lényegesen lassabb. Másrészt megoldható javaszkripttel is. Tudom, hogy nem megy, de erőltetem, amíg nem fog menni. Ez talán probléma?