|
|
|
|
JavaScript
Evolter - Śro Paź 20, 2010 9:36 am
Ktoś obczaja ten język? Chodzi mi o wyrażenia regularne - przykład: Kod: Zaznacz wszystko/(.*)(?:\[d\])(.*)(?:\[\/d\])(.*)/gi - wyrażenie "$1<div>$2</div>$3" - zamiana 12[d]34[/d]56[d]78[/d]90 - do zamianyMój problem polega na tym, że funkcja replace wsadza mi tylko 78 do diva - ktoś ma pomysł dlaczego działa tylko na ostatnie występowanie?
Evolter - Sob Paź 23, 2010 12:18 am
Widzę, że mamy tu samych programistów JavaScript
Jak do tej pory wpadłem na dwa pomysły: Kod: Zaznacz wszystkowhile(do_zamiany.search(wyrazenie)>=0) do_zamiany = do_zamiany.replace(wyrazenie,zamiana);Ale przy nowej linii to nie działa - ewentualna zmienienie części wyrażenia, tak aby tolerował również znaki specjalne (w tym nowej linii) powoduje problemy, przy niektórych kombinacjach kolejności tagów (ważne przy zagnieżdżaniu divów jeden w drugim).
Drugi pomysł jest już odporny na kolejności, i w dodatku nie robi zamiany przy nie równej ilości tagów otwierających z zamykającymi:Kod: Zaznacz wszystkoif(do_zamiany.search(/\[d\]/gi)>=0) for(var i=do_zamiany.match(/\[d\]/gi).length; i>0; i--) { if(do_zamiany.search(/\[d\]/gi)<do_zamiany.search(/\[\/d\]/gi)) do_zamiany = do_zamiany.replace(/\[d\]/i,'<div>').replace(/\[\/d\]/i,'</div>'); } Jakby ktoś miał lepsze rozwiązanie to pisać
zanotowane.pldoc.pisz.plpdf.pisz.plalbionteam.htw.pl
zanotowane.pldoc.pisz.plpdf.pisz.plcichooo.htw.pl
|
|
|
|