« Javascript és regex »

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,'&bdquo;$1&rdquo;');
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.

Kommentek RSS ikon
A bejegyzéshez érkezett kommentek, amiket RSS csatornán is követhetsz.
Csak most jöttél rá? :)
Tudtam, hogy lehet használni, de nem foglalkoztam vele. :)
szerintem ez a fenti function simán lecseréli a tagekben is az idézőjeleket. tévedek?
teszt „teszt” teszt
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?
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.
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.
Hajj, volt egy pár elgépelés itt. :D
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.
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?
Miért lassabb? Szar a preg_* a PHP-ben talán? :)
Új komment

Itt az adott bejegyzésben elhangzottakhoz szólhatsz hozzá. Ha primitív, csúnya, vagy bunkó erkölcsről teszel tanúbizonyságot, tuti, hogy kimoderállak és rosszat mondok rólad. A hozzászólás nem kötelező, amit írsz vállald föl!

Ezeket az adatokat - ha a böngésződ kezeli a kukikat - csak egyszer kell megadnod, később módosíthatod.

Ha van gravatarod - és a gravataros e-mail-címeddel kommentálsz -, akkor az megjelenik. Ha nincs, vagy nem tudod miaz, akkor olvasd el az útmutatót és regisztrálj.

Neved: E-mail címed (nem jelenik meg): Webszájtod (ha van): Kommented: Mennyi egy és egy összege?
Ez védelmi célokat szolgál, szimplán írd be a fenti összeadás összegét!

A kommentedet írhatod nagyobb mezőbe vagy akár formázhatod is, de ha nem szalonképes, akkor moderálom!

Ajánló
Ebben a témában, esetleg ezen a napon voltak még ilyenek is:

Sony VAIO VGN-S5XP (2007. szeptember 12., 02:04:28)
Szélessávra szomjazom (2012. április 04., 11:59:25)
Szezon van (2010. február 26., 09:35:37)

Érdekességek
Száraz számok, pusztán csak tények:

Ez a bejegyzés 2249 napja született, 314 szóból, és 1801 karakterből áll. Ajánlhatod bizonyos linkgyűjtő oldalaknak: