⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jspruncode.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package cn.jsprun.foreg.utils;

import java.util.Iterator;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.lang.StringUtils;

import cn.jsprun.utils.Common;

public class Jspruncode {
	private String bbcode_str[] = { "\\[/color\\]", "\\[/size\\]", "\\[/font\\]", "\\[/align\\]",
			"\\[b\\]", "\\[/b\\]", "\\[i\\]", "\\[/i\\]", "\\[u\\]", "\\[/u\\]", "\\[list\\]", "\\[list\\=1\\]",
			"\\[list\\=a\\]", "\\[list\\=A\\]", "\\[\\*\\]", "\\[/list\\]", "\\[indent\\]", "\\[/indent\\]",
			"\\[/float\\]", "\\[quote\\]", "\\[/quote\\]","\\[/align\\]","\\[/email\\]","\\[/fly\\]","\\[sup\\]","\\[/sup\\]","\\[sub\\]","\\[/sub\\]","\\[fly\\]"};

	private String bbcode_str_replace[] = {
			"</font>",
			"</font>",
			"</font>",
			"</p>",
			"<strong>",
			"</strong>",
			"<i>",
			"</i>",
			"<u>",
			"</u>",
			"<ul>",
			"<ul type='1'>",
			"<ul type='a'>",
			"<ul type='A'>",
			"<li>",
			"</ul>",
			"<blockquote>",
			"</blockquote>",
			"</span>",
			"<div class='quote'><h5>引用:</h5><blockquote>",
			"</blockquote></div>","</font>","</a>","</marquee>","<sup>","</sup>","<sub>","</sub>","<marquee scrollamount='3' behavior='alternate' width='90%'>"};
	private String bbcode_speciald[] = {"(\\B|\\b)?\\[url=www.([^\\[\"']+?)\\](.+?)\\[/url\\](\\B|\\b)?","(\\B|\\b)?\\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k|thunder|synacast){1}:\\/\\/([^\\[\"']+?)\\](.+?)\\[/url\\](\\B|\\b)?","(\\B|\\b)?\\[email\\]\\s*([a-z0-9\\-_.+]+)@([a-z0-9\\-_]+[.][a-z0-9\\-_.]+)\\s*\\[/email\\](\\B|\\b)?","(\\B|\\b)?\\[email=([a-z0-9\\-_.+]+)@([a-z0-9\\-_]+[.][a-z0-9\\-_.]+)\\](.+?)\\[/email\\](\\B|\\b)?","(\\B|\\b)?\\[color=([#\\w]+?)\\](\\B|\\b)?","(\\B|\\b)?\\[size=(\\d+?)\\](\\B|\\b)?","(\\B|\\b)?\\[size=(\\d+(\\.\\d+)?(px|pt|in|cm|mm|pc|em|ex|%)+?)\\](\\B|\\b)?","(\\B|\\b)?\\[font=([^\\[\\<]+?)\\](\\B|\\b)?","(\\B|\\b)?\\[align=(left|center|right)\\](\\B|\\b)?","(\\B|\\b)?\\[float=(left|right)\\](\\B|\\b)?","(\\B|\\b)?\\[url\\]\\s*(https?:\\/\\/|ftp:\\/\\/|gopher:\\/\\/|news:\\/\\/|telnet:\\/\\/|rtsp:\\/\\/|mms:\\/\\/|callto:\\/\\/|bctp:\\/\\/|ed2k:\\/\\/|thunder:\\/\\/|synacast:\\/\\/){1}([^\\[\"']+?)\\s*\\[/url\\](\\B|\\b)?","(\\B|\\b)?\\[url\\]\\s*(www.){1}([^\\[\"']+?)\\s*\\[/url\\](\\B|\\b)?"};
	private String bbcode_replaced[] = {"<a href=\"http://www.$2\" target=\"_blank\">www.$2</a>","<a href=\"$2://$3\" target=\"_blank\">$4</a>","<a href=\"mailto:$2@$3\">$2@$3</a>","<a href=\"mailto:$2@$3\">$2@$3</a>","<font color=\"$2\">","<font size=\"$2\">","<font style=\"font-size: $2\">","<font face=\"$2 \">","<p align=\"$2\">","<span style=\"float: $2;\">","<a href=\"$2$3\" target=\"_blank\">$2$3</a>","<a href=\"http://www.$3\" target=\"_blank\">www.$3</a>"};
	private String ramessage = "<object classid=\"clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA\" width=\"{1}\" height=\"32\"><param name=\"autostart\" value=\"{3}\" /><param name=\"src\" value=\"{4}\" /><param name=\"controls\" value=\"controlpanel\" /><param name=\"console\" value=\"media_XHm_\" /><embed src=\"{4}\" type=\"audio/x-pn-realaudio-plugin\" controls=\"ControlPanel\" autostart=\"{3}\" console=\"media_XHm_\" width=\"{1}\" height=\"32\"></embed></object>";
	private String rmmessage = "<object classid=\"clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA\" width=\"{1}\" height=\"{2}\"><param name=\"autostart\" value=\"{3}\" /><param name=\"src\" value=\"{4}\" /><param name=\"controls\" value=\"imagewindow\" /><param name=\"console\" value=\"media_jYq_\" /><embed src=\"{4}\" type=\"audio/x-pn-realaudio-plugin\" controls=\"IMAGEWINDOW\" console=\"media_jYq_\" width=\"{1}\" height=\"{2}\"></embed></object><br /><object classid=\"clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA\" width=\"{1}\" height=\"32\"><param name=\"src\" value=\"{4}\" /><param name=\"controls\" value=\"controlpanel\" /><param name=\"console\" value=\"media_jYq_\" /><embed src=\"{4}\" type=\"audio/x-pn-realaudio-plugin\" controls=\"ControlPanel\"&nbsp;&nbsp;console=\"media_jYq_\" width=\"{1}\" height=\"32\"></embed></object>";
	private String wmamessage = "<object classid=\"clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6\" width=\"{1}\" height=\"64\"><param name=\"autostart\" value=\"{3}\" /><param name=\"url\" value=\"{4}\" /><embed src=\"{4}\" autostart=\"{3}\" type=\"audio/x-ms-wma\" width=\"{1}\" height=\"64\"></embed></object>";
	private String wmvmessage = "<object classid=\"clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6\" width=\"{1}\" height=\"{2}\"><param name=\"autostart\" value=\"{3}\" /><param name=\"url\" value=\"{4}\" /><embed src=\"{4}\" autostart=\"{3}\" type=\"video/x-ms-wmv\" width=\"{1}\" height=\"{2}\"></embed></object>";
	private String mp3message = "<object classid=\"clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6\" width=\"{1}\" height=\"64\"><param name=\"autostart\" value=\"{3}\" /><param name=\"url\" value=\"{4}\" /><embed src=\"{4}\" autostart=\"{3}\" type=\"application/x-mplayer2\" width=\"{1}\" height=\"64\"></embed></object>";
	private String othermessage = "<object classid=\"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\" width=\"{1}\" height=\"{2}\"><param name=\"autostart\" value=\"{3}\" /><param name=\"src\" value=\"{4}\" /><embed controller=\"true\" width=\"{1}\" height=\"{2}\" src=\"{4}\" autostart=\"{3}\"></embed></object>";
	private String bbcode_img[]={"(\\B|\\b)?\\[img=(\\d{1,4})[x|,](\\d{1,4})\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[/img\\](\\B|\\b)?","(\\B|\\b)?\\[img\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[/img\\](\\B|\\b)?"};
	private String bbcode_imgreplace[]={"<img width=\"$2\" height=\"$3\" src=\"$4\" border=\"0\" alt=\"\" />","<img src=\"$2\" border=\"0\" onclick=\"zoom(this)\" onload=\"attachimg(this, \'load\')\" alt=\"\" />"};
	private String bbcode_imgsp[]={"<a href=\"$4\" target=\"_blank\">$4</a>","<a href=\"$2\" target=\"_blank\">$2</a>"};
	public String parseimg(String message,boolean isparse){
		if(isparse){
			for(int i=0;i<bbcode_img.length;i++){
				message = message.replaceAll(bbcode_img[i], bbcode_imgreplace[i]);
			}
		}else{
			for(int i=0;i<bbcode_img.length;i++){
				message = message.replaceAll(bbcode_img[i], bbcode_imgsp[i]);
			}
		}
		return message;
	}
	public String parsecode(String message,boolean isbool){
		Pattern p = Pattern.compile("(?s)\\s*\\[code\\](.+?)\\[/code\\]\\s*");
	    Matcher m = p.matcher(message);
	    while(m.find()){
	    	String bbcode = m.group(1);
	    	message = message.replaceFirst("(?s)\\s*\\[code\\](.+?)\\[/code\\]\\s*", "<div style='font-size: 12px'><br /><br /><div class='blockcode'><h5>代码:</h5><code id='code0'>"+dhtmlspecialchars(bbcode,isbool)+"</code></div></div>");
	    }
		for(int i=0;i<bbcode_speciald.length;i++){
			message = message.replaceAll(bbcode_speciald[i], bbcode_replaced[i]);
		}
		for (int i = 0; i < bbcode_str.length; i++) {
			message = message.replaceAll(bbcode_str[i], bbcode_str_replace[i]);
		}
		return message;
	}
	public String parsemedia(String message,boolean isparse){
			if(isparse){
				message = message.replaceAll("(\\B|\\b)?\\[media=ra,(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", StringUtils.replace(StringUtils.replace(StringUtils.replace(StringUtils.replace(ramessage, "{1}", "$2"), "{2}", "$3"), "{3}", "$4"),"{4}","$5"));
				message = message.replaceAll("(\\B|\\b)?\\[media=rm,(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", StringUtils.replace(StringUtils.replace(StringUtils.replace(StringUtils.replace(rmmessage, "{1}", "$2"), "{2}", "$3"), "{3}", "$4"),"{4}","$5"));
				message = message.replaceAll("(\\B|\\b)?\\[media=wma,(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", StringUtils.replace(StringUtils.replace(StringUtils.replace(StringUtils.replace(wmamessage, "{1}", "$2"), "{2}", "$3"), "{3}", "$4"),"{4}","$5"));
				message = message.replaceAll("(\\B|\\b)?\\[media=wmv,(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", StringUtils.replace(StringUtils.replace(StringUtils.replace(StringUtils.replace(wmvmessage, "{1}", "$2"), "{2}", "$3"), "{3}", "$4"),"{4}","$5"));
				message = message.replaceAll("(\\B|\\b)?\\[media=mp3,(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", StringUtils.replace(StringUtils.replace(StringUtils.replace(StringUtils.replace(mp3message, "{1}", "$2"), "{2}", "$3"), "{3}", "$4"),"{4}","$5"));
				message = message.replaceAll("(\\B|\\b)?\\[media=(\\w+),(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", StringUtils.replace(StringUtils.replace(StringUtils.replace(StringUtils.replace(othermessage, "{1}", "$3"), "{2}", "$4"), "{3}", "$5"),"{4}","$6"));
			}else{
				message = message.replaceAll("(\\B|\\b)?\\[media=ra,(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", "<a href=\"$5\" target=\"_blank\">$5</a>");
				message = message.replaceAll("(\\B|\\b)?\\[media=rm,(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", "<a href=\"$5\" target=\"_blank\">$5</a>");
				message = message.replaceAll("(\\B|\\b)?\\[media=wma,(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", "<a href=\"$5\" target=\"_blank\">$5</a>");
				message = message.replaceAll("(\\B|\\b)?\\[media=wmv,(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", "<a href=\"$5\" target=\"_blank\">$5</a>");
				message = message.replaceAll("(\\B|\\b)?\\[media=mp3,(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?", "<a href=\"$5\" target=\"_blank\">$5</a>");
				message = message.replaceAll("(\\B|\\b)?\\[media=(\\w+),(\\d+),(\\d+),(\\d+)\\](.*)\\[/media\\](\\B|\\b)?","<a href=\"$6\" target=\"_blank\">$6</a>");
			}
			
		return message;
	}
	public String parseFlashorQQ(String message,Map<String, String> bbcodelist){
			if(bbcodelist!=null && !bbcodelist.keySet().isEmpty()){
				Iterator it = bbcodelist.keySet().iterator();
				while(it.hasNext()){
					Object key = it.next();
					String replement = bbcodelist.get(key);
					key = key.toString().toLowerCase();
					if(replement.indexOf("{2}")!=-1){
						if(Common.matches(message,"(\\B|\\b)?\\["+key+"=(\\d+,\\d+)\\](.*)\\[/"+key+"\\](\\B|\\b)?")){
							message = message.replaceAll("(\\B|\\b)?\\["+key+"=(\\d+),(\\d+)\\](.*)\\[/"+key+"\\](\\B|\\b)?",StringUtils.replace(StringUtils.replace(StringUtils.replace(replement, "{1}", "$2"), "{2}", "$3"), "{3}", "$4"));
						}

					}else{
						if(Common.matches(message,"(\\B|\\b)?\\["+key+"\\].+\\[/"+key+"\\](\\B|\\b)?")){
							message = message.replaceAll("(\\B|\\b)?\\["+key+"\\](.*)\\[/"+key+"\\](\\B|\\b)?",StringUtils.replace(replement,"{1}", "$2"));
						}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -