Witam, poszukuje funkcji w javie która skonwertowała by mi tekst w html na taki podstawowy bbcode tak jak robi to javascript na tej stronie http://www.seabreezecomputers.com/html2bbcode/. Moze ma kros cos takiego napisane ? Bo szczerze to mi sie nie chce pisac tego od poczatku bo to kawalek roboty
ctr+u?
sprzedamsanki napisał(a)
ctr+u?
co masz na mysli ?
źródło strony :]
tak tylko jak przerobic cos takiego z javascript na JAVA aby to dzialalo:
bbcodetext = bbcodetext.replace(/<BR>/gi, "\r");
bbcodetext = bbcodetext.replace(/<BR(.*?)\/>/gi, "\r"); // added (.*?) 5/30/09
bbcodetext = bbcodetext.replace(/<P>/gi, "\r\r");
bbcodetext = bbcodetext.replace(/<P [^>]*>/gi, "\r\r");
bbcodetext = bbcodetext.replace(/<code>/gi, "[code]");
bbcodetext = bbcodetext.replace(/<\/CODE>/gi, "[/code]");
bbcodetext = bbcodetext.replace(/<BLOCKQUOTE>/gi, "[quote]");
bbcodetext = bbcodetext.replace(/<\/BLOCKQUOTE>/gi, "[/quote]");
bbcodetext = bbcodetext.replace(/<UL[^>]*>/gi, "[list]");
bbcodetext = bbcodetext.replace(/<\/UL>/gi, "[/list]");
bbcodetext = bbcodetext.replace(/<OL[^>]*>/gi, "[list=1]");
bbcodetext = bbcodetext.replace(/<\/OL>/gi, "[/list]");
bbcodetext = bbcodetext.replace(/<LI>/gi, "[*]");
a co to, java nie ma wyrażeń regularnych?
odpowiednik funkcji .replace() w Javie to: http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Matcher.html#replaceAll(java.lang.String)
bbcodetext.replace("/<B>/gi", "[b]");
bbcodetext.replace("/<\/B>/gi", "[/b]");
bbcodetext.replace("/<U>/gi", "[u]");
bbcodetext.replace("/<\/U>/gi", "[/u]");
bbcodetext.replace("/<I>/gi", "[i]");
bbcodetext.replace("/<\/I>/gi", "[/i]");
Jakis przyklad bo tak to działac nie chce, krzyczy illegall escape character</b></u></i>
Nie mam teraz dostępu do środowiska, więc nie mogę sprawdzić argumentów konstruktora obiektu Matcher, ale kod chyba będzie wyglądał tak:
String bbcodetext ="";//...
bbcodetext = new Matcher("<BR>").replaceAll("\r");
I tak dla wszystkich linijek. Jeśli dobrze zrozumiałem specyfikację Javascriptu, to /gi trzeba usunąć.
Nie jestem specjalistą od JS, ani od wyrażeń regularnych, więc w razie kłopotów któś inny ci bedzie musiał to dokładniej wyjaśnić.
Acha. illegall escape character jest przez "/<", który jest wymagany w przeglądarkach, ale w Javie wystarczy "<"
hubert_nnn napisał(a)
Nie mam teraz dostępu do środowiska, więc nie mogę sprawdzić argumentów konstruktora obiektu Matcher, ale kod chyba będzie wyglądał tak:
String bbcodetext ="";//...
bbcodetext = new Matcher("<BR>").replaceAll("\r");
> I tak dla wszystkich linijek. Jeśli dobrze zrozumiałem specyfikację Javascriptu, to /gi trzeba usunąć.
>
> Nie jestem specjalistą od JS, ani od wyrażeń regularnych, więc w razie kłopotów któś inny ci bedzie musiał to dokładniej wyjaśnić.
>
> Acha. illegall escape character jest przez "/<", który jest wymagany w przeglądarkach, ale w Javie wystarczy "<"
z tym Matcherem nie wiem jak tego uzyc a z tym "/<" to niby faktycznie pomoglo ale znow nie dla wszystkich warunkow
Niech zgadnę. Nie pomogło przy [/u],[/b],[/i]? jeśli tak, to zrób podwójne ukośniki tam np. [*u] lub [/u]. Któreś pomoże, tylko właśnie nie pamiętam które albo dobra będzie para </B> i [/b], albo <*B> i [//b].