Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]BBcode
Forum PHP.pl > Forum > Przedszkole
atom90
mam problem z listami
zamieniam takie wyrazenie na li
Kod
[/\[list\](.*?)\[\/list\]/g, "<ul>$1</ul>"],
[/\[\*\](.*?)/g, "<li>$1</li>"],


lecz efektem jest ze tekst który powinien znalesc sie w znacznikach wyrzuca poza nimi czyli np
Kod
[list]
[*]punkt jeden
[*]punkt dwa
[/list]

Kod
<ul>
<li></li>
punkt jeden
<li></li>
punkt dwa
</ul>


jakies sugestie?
nospor
To moze uraczysz nas calym kawalkiem kodu js, a nie tylko wycinkiem?
atom90
Kod
function BBcode(x) {
        var BB_table = [
            [/\[b\](.*?)\[\/b\]/g, "<strong>$1</strong>"],
            [/\[i\](.*?)\[\/i\]/g, "<i>$1</i>"],
            [/\[u\](.*?)\[\/u\]/g, "<u>$1</u>"],
            [/\[s\](.*?)\[\/s\]/g, "<s>$1</s>"],
            [/\[img\](.*?)\[\/img\]/g, "<img class='resize' src='$1'></img>"],
            [/\[img=(.*?)\]/g, "<img class='resize' src='$1'></img>"],
            [/\[color=(.*?)\](.*?)\[\/color\]/g, "<font color='$1'>$2</font>"],
            [/\[size=(.*?)\](.*?)\[\/size\]/g, "<font size='$1'>$2</font>"],
            [/\[url=(.*?)\](.*?)\[\/url\]/g, "<a href='$1'>$2</a>"],
            [/\[center\](.*?)\[\/center\]/g, "<center>$1</center>"],
            [/\[code\](.*?)\[\/code\]/g, "<div class='codetop'>Kod</div><div class='code'>$1</div>"],
            [/\[list\](.*?)\[\/list\]/g, "<ul>$1</ul>"],
            [/\[\*\](.*?)/g, "<li>$1</li>"],
            [/\[quote\](.*?)\[\/quote\]/g, "<q>$1</q>"],
            [/\[table\](.*?)\[\/table\]/g, "<table class='tabelki'>$1</table>"],
            [/\[tr\](.*?)\[\/tr\]/g, "<tr>$1</tr>"],
            [/\[td\](.*?)\[\/td\]/g, "<td class='tabelki_td'>$1</td>"]
        ];
        for (var i = 0; i < BB_table.length; i++)
            x = x.replace(BB_table[i][0], BB_table[i][1]);
        return x;
    }
nospor
To wyglada tak, jakby on w ogole tego tekstu nie wzial do wyrazenia.

Tak, tak jak mowilem, on to .*? traktuje jako najmniejszy pasujacy ciag, czyli nie bierze nic.
Musisz o to
/\[\*\](.*?)/g
w jakis sposob zakonczyc.
atom90
na upartego
[/\[\*\](.*?)/g, "<li>$1"],

wywalilem domkniecie li i dziala bo przegladarka to zrobi, ale to nie jest za dobry chyba pomysl
nospor
mozesz zakonczyc to enterem

[/\[\*\](.*?)\n/g, "<li>$1</li>"],
atom90
w tym problem ze nie dam rady tak zrobic bo entery sa usuwane przez serwer ktory pracuje na nich(nie mam do niego dostepu) no takie glupie troche rozwiazanie, ale coz
nospor
Ke? Jak usuwane przez serwer? Przez jaki serwer? Poza tym, z tego co widze, to dane zmieniasz w locie w js, i nie dochodzisz do etapu serwera. Chyba, ze te dane pochodzą juz z serwera,a ty je w js obrabiasz. Jesli tak, to naprawde nie widze problemu, by wpierw zamienic
[*]
na
\n[*]

oraz
[/list]
na
\n[/list]

a potem uzyc wyraznia co podalem.
Od myslenia glowa nie boli, jak to mawial slynny filozof kubus
atom90
Kod
[/\[list\]/gi, "\n[list]"],
            [/\[list\](.*?)\[\/list\]/gi, "<ul>$1</ul>"],
            [/\[\*\]/gi,"\n[*]"],
            [/\[\*\](.*?)\n/gi, "<li>$1</li>"],


chwyta mi tylko 1 element laduje do li a drigi jest po enterze i wywala [*]punkt dwa
nospor
Miales zamieniac [/list] a nie [list]... Czemu dzisiaj plaga nie czytajacych? Piatek dopiero jutro :/
atom90
wybacz slepy, jestem. tylko ostatnie pytanie
[/\[list\](.*?)\[\/list\]/gi, "<ul>$1</ul>"],
musze to zmodyfikowac bo mi znaczników nie zamienia listy teraz
myslalem nad takim czyms, ale tez nie działalo.
[/\[list\](.*?)\n\[\/list\]/gi, "<ul>$1</ul>"],
nospor
Tak ma byc:
Kod
        var BB_table = [
            [/\[b\](.*?)\[\/b\]/g, "<strong>$1</strong>"],
            [/\[i\](.*?)\[\/i\]/g, "<i>$1</i>"],
            [/\[u\](.*?)\[\/u\]/g, "<u>$1</u>"],
            [/\[s\](.*?)\[\/s\]/g, "<s>$1</s>"],
            [/\[img\](.*?)\[\/img\]/g, "<img class='resize' src='$1'></img>"],
            [/\[img=(.*?)\]/g, "<img class='resize' src='$1'></img>"],
            [/\[color=(.*?)\](.*?)\[\/color\]/g, "<font color='$1'>$2</font>"],
            [/\[size=(.*?)\](.*?)\[\/size\]/g, "<font size='$1'>$2</font>"],
            [/\[url=(.*?)\](.*?)\[\/url\]/g, "<a href='$1'>$2</a>"],
            [/\[center\](.*?)\[\/center\]/g, "<center>$1</center>"],
            [/\[code\](.*?)\[\/code\]/g, "<div class='codetop'>Kod</div><div class='code'>$1</div>"],
            [/\[list\](.*?)\[\/list\]/g, "<ul>$1\n</ul>"],
            [/\[\/list\]/gi, "\n[/list]"],
            [/\[\*\]/gi,"\n[*]"],
            [/\[\*\](.*?)\n/g, "<li>$1</li>"],
            [/\[quote\](.*?)\[\/quote\]/g, "<q>$1</q>"],
            [/\[table\](.*?)\[\/table\]/g, "<table class='tabelki'>$1</table>"],
            [/\[tr\](.*?)\[\/tr\]/g, "<tr>$1</tr>"],
            [/\[td\](.*?)\[\/td\]/g, "<td class='tabelki_td'>$1</td>"]
        ];
        for (var i = 0; i < BB_table.length; i++)
            x = x.replace(BB_table[i][0], BB_table[i][1]);
        return x;
atom90
dzieki i sory za głupoty
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.