ďťż
  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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • albionteam.htw.pl
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • cichooo.htw.pl