Du bist nicht angemeldet.

Localhost

Ehemaliger Supporter

  • »Localhost« ist der Autor dieses Themas

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

1

Montag, 4. Juni 2012, 23:01

BBCodeParser

Dieses Snippet escaped den KCode und parsed BBCodes.

Wer kein Bock auf KCodes hat, nutzt einfach diese Methode. Sieben Beispiele vorhanden. RegEx muss selbst erweitert werden.

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
	public static String parse(String text) {
    	String html = escape(text);
    	Map<String, String> bbMap = new HashMap<String , String>();

    	bbMap.put("\\[b\\](.+?)\\[/b\\]", "_$1_");
    	bbMap.put("\\[i\\](.+?)\\[/i\\]", ""$1"");
    	bbMap.put("\\[textborder\\](.+?)\\[/textborder\\]", "°>{textborder}<°$1§");
    	bbMap.put("\\[center\\](.+?)\\[/center\\]", "°>center<°$1°#>left<°°");
    	bbMap.put("\\[url\\](.+?)\\[/url\\]", "°>>$1|$1<°");
    	bbMap.put("\\[img\\](.+?)\\[/img\\]", "°>$1<°");
    	bbMap.put("\\[url=(.+?)\\](.+?)\\[/url\\]", "°>>$2|$1<°");

    	for(String value : bbMap.keySet()) {
        	html = html.replaceAll(value, bbMap.get(value));
    	}

    	return html;
	}

	public static String escape(String message) {
    	return message
    			.replace("", "\\")
    			.replace(""", """)
    			.replace("#", "\\#")
    			.replace("_", "\\_")
    			.replace("§", "\\§")
    			.replace("°", "\\°");
	}