📄 jspruncode.java
字号:
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\" 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 + -