encoder.java

来自「社区文章采用的是平板、树形自由选择的两种展示方式」· Java 代码 · 共 217 行

JAVA
217
字号
/* 
 * Created on 2007-3-22
 * Last modified on 2007-12-12
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.view.util;

import com.yeqiangwei.util.StringHelper;
import com.yeqiangwei.util.Validator;

public class EnCoder {
	
	public static void main(String args[]){
		String content = "ddddddddd[quote=板砖 楼主说]前几天和一[/color]上很多人哎!” ........ [color=green] 本内容跟帖[color=red]复才[/b] [url=http://n[/quote]";
		content = StringHelper.ubbPattern(content,"\\[quote=(.*?)\\](.*?)\\[/quote\\]","","");
		System.out.println(content);
	}
	
    public static String codeColor(String str){
        if(Validator.isEmpty(str)) return "";
        str = StringHelper.replace(str, "&quot;(.*?)&quot;","<font style=color:#2A00FF;>&quot;$1&quot;</font>");
        str = StringHelper.replace(str, "\\/\\*(.*?)\\*/","<font style=color:#3F7F5F;>/*$1*/</font>");
        str = StringHelper.replace(str, "\\/\\/(.*?)\\<br/>","<font style=color:#3F7F5F;>//$1</font><br/>");
        str = StringHelper.replace(str,"private&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">private&nbsp;</font>");
        str = StringHelper.replace(str,"protected&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">protected&nbsp;</font>");
        str = StringHelper.replace(str,"public&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">public&nbsp;</font>");
        str = StringHelper.replace(str,"static&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">static&nbsp;</font>");
        str = StringHelper.replace(str,"return&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">return&nbsp;</font>");
        str = StringHelper.replace(str,"try","<font style=\"color:#7F0055; font-weight: bold;\">try</font>");
        str = StringHelper.replace(str,"catch","<font style=\"color:#7F0055; font-weight: bold;\">catch</font>");
        str = StringHelper.replace(str,"finally","<font style=\"color:#7F0055; font-weight: bold;\">finally</font>");
        str = StringHelper.replace(str,"package","<font style=\"color:#7F0055; font-weight: bold;\">package</font>");
        
        str = StringHelper.replace(str,"null","<font style=\"color:#7F0055; font-weight: bold;\">null</font>");
        str = StringHelper.replace(str,"short&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">short&nbsp;</font>");
        str = StringHelper.replace(str,"int&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">int&nbsp;</font>");
        str = StringHelper.replace(str,"double&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">double&nbsp;</font>");
        str = StringHelper.replace(str,"byte&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">byte&nbsp;</font>");
        str = StringHelper.replace(str,"long&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">long&nbsp;</font>");
        str = StringHelper.replace(str,"final&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">final&nbsp;</font>");
        str = StringHelper.replace(str,"new&nbsp;","<font style=\"color:#7F0055; font-weight: bold;\">new&nbsp;</font>");
        str = StringHelper.replace(str,"false","<font style=\"color:#7F0055; font-weight: bold;\">false</font>");
        str = StringHelper.replace(str,"true","<font style=\"color:#7F0055; font-weight: bold;\">true</font>");
        
        str = StringHelper.replace(str,"while\\(","<font style=\"color:#7F0055; font-weight: bold;\">while</font>(");
        str = StringHelper.replace(str,"for\\(","<font style=\"color:#7F0055; font-weight: bold;\">for</font>(");
        str = StringHelper.replace(str,"switch","<font style=\"color:#7F0055; font-weight: bold;\">switch</font>");
        str = StringHelper.replace(str,"if\\(","<font style=\"color:#7F0055; font-weight: bold;\">if</font>(");
        str = StringHelper.replace(str,"else","<font style=\"color:#7F0055; font-weight: bold;\">else</font>");
        str = StringHelper.replace(str,"this\\.","<font style=\"color:#7F0055; font-weight: bold;\">this</font>.");
        str = StringHelper.replace(str,"function\\(","<font style=\"color:#7F0055; font-weight: bold;\">function</font>(");
        str = StringHelper.replace(str,"document.","<font style=\"color:#7F0055; font-weight: bold;\">document</font>.");

        return str; 
    }
    
    /*
    public static String ubbColor(String str){
        return ubbPattern(str, "\\[color=(.*?)\\](.*?)\\[/color\\]","<font color=\"$1\">$2</font>");
    }
    */
    public static String txtEncoder(String str){
    	str = StringHelper.replace(str, "$", "_yqw_");
    	str = StringHelper.replace(str, "\r", "");
    	str = StringHelper.replace(str, "\n", "\r\n");
    	str = StringHelper.replace(str, "&quot;", "\"");
    	str = ubbPattern(str, "\\[url\\](.*?)\\[/url\\]","$1");
    	str = ubbPattern(str, "\\[img\\](.*?)\\[/img\\]","$1");
    	str = ubbPattern(str, "\\[center\\](.*?)\\[/center\\]","$1");
    	str = ubbPattern(str, "\\[b\\](.*?)\\[/b\\]","$1");
    	str = ubbPattern(str, "\\[i\\](.*?)\\[/i\\]","$1");
    	str = ubbPattern(str, "\\[u\\](.*?)\\[/u\\]","$1");
    	str = ubbPattern(str,"\\[url=(.*?)\\](.*?)\\[/url\\]","$2\r\n$1");
    	str = ubbPattern(str,"\\[font=(.*?)\\](.*?)\\[/font\\]","$2");
    	str = ubbPattern(str,"\\[color=(.*?)\\](.*?)\\[/color\\]","$2");
    	str = StringHelper.replace(str, "[b]", "");
        str = StringHelper.replace(str, "[i]", "");
        str = StringHelper.replace(str, "[u]", "");
        str = StringHelper.replace(str, "[center]", "");
        str = StringHelper.replace(str, "[/b]", "");
        str = StringHelper.replace(str, "[/i]", "");
        str = StringHelper.replace(str, "[/u]", "");
        str = StringHelper.replace(str, "[/center]", "");
        str = ubbPattern(str, "\\[flash\\](.*?)\\[/flash\\]","<url>");
        str = ubbPattern(str, "\\[swf\\](.*?)\\[/swf\\]","<url>");
        str = ubbPattern(str, "\\[flash=*([\\d]*),*([\\d]*)\\](.*?)\\[/flash\\]","<url>");
        str = ubbPattern(str, "\\[swf=*([\\d]*),*([\\d]*)\\](.*?)\\[/swf\\]","<url>");
        str = ubbPattern(str, "\\[real\\](.*?)\\[/real\\]","<url>");
        str = ubbPattern(str, "\\[real=*([\\d]*),*([\\d]*)\\](.*?)\\[/real\\]","<url>");
        str = ubbPattern(str, "\\[real=*([\\d]*),*([\\d]*),(-1|0)\\](.*?)\\[/real\\]","<url>");
        str = ubbPattern(str, "\\[video\\](.*?)\\[/video\\]","<url>");
        str = ubbPattern(str, "\\[mp\\](.*?)\\[/mp\\]","<url>");
        str = ubbPattern(str, "\\[video=*([\\d]*),*([\\d]*)\\](.*?)\\[/video\\]","<url>");
        str = ubbPattern(str, "\\[video=*([\\d]*),*([\\d]*),*([\\d]*)\\](.*?)\\[/video\\]","<url>");
        str = ubbPattern(str, "\\[music_songId\\](.*?)\\[/music_songId\\]","<url>");
    	str = ubbPattern(str, "\\[bt\\](.*?)\\[/bt\\]","$1");
    	str = ubbPattern(str, "\\[bt=(.*?)\\](.*?)\\[/bt\\]","$2");
    	str = ubbPattern(str,"\\[size=(.*?)\\](.*?)\\[/size\\]","$2");
    	str = ubbPattern(str,"\\[quote=(.*?)\\](.*?)\\[/quote\\]","引用内容:$2");
    	str = ubbPattern(str,"\\[quote\\](.*?)\\[/quote\\]","引用内容:$1");
    	str = ubbPattern(str, "\\[lrc\\](.*?)\\[/lrc\\]","$1");
    	str = ubbPattern(str, "\\[table\\](.*?)\\[/table\\]","$1");
    	str = ubbPattern(str, "\\[td\\](.*?)\\[/td\\]","$1");
    	str = ubbPattern(str, "\\[tr\\](.*?)\\[/tr\\]","$1");
    	str = ubbPattern(str, "\\[fly\\](.*?)\\[/fly\\]","$1");
    	str = ubbPattern(str, "\\[code\\](.*?)\\[/code\\]","$1");
    	str =  StringHelper.replace(str, "_yqw_", "$");
    	return str;
    }
    
    public static String simpleTag(String str){
    	if(Validator.isEmpty(str)) return "";
    	str = ubbPattern(str, "\\[url\\](.*?)\\[/url\\]","<a href=\"$1\" target=\"_blank\">$1</a>");
    	//str = EnCoder.replaceTag(str, "url","<a href=\"$1\" target=\"_blank\">","</a>");
       
    	str = ubbPattern(str, "\\[url=(.*?)\\](.*?)\\[/url\\]","<a href=\"$1\" target=\"_blank\">$2</a>");
        str = ubbPattern(str, "\\[img\\](.*?)\\[/img\\]","<a href=\"$1\" target=\"_blank\"><img onload=\"javascript:if(this.width > screen.width-350){this.width = screen.width-350};\" onerror=\"javascript:this.src='/club/images/imgErr.gif'\" src=\"$1\" /></a>"); 
        
        str = ubbPattern(str,"\\[center\\](.*?)\\[/center\\]","<center>$1</center>");
        //str = EnCoder.replaceTag(str, "center","","");
        
        str = ubbPattern(str,"\\[b\\](.*?)\\[/b\\]","<strong>$1</strong>");
        //str = EnCoder.replaceTag(str, "b","<strong>","</strong>");
       
        str = ubbPattern(str,"\\[i\\](.*?)\\[/i\\]","<em>$1</em>");
        //str = EnCoder.replaceTag(str, "i");
        
        str = ubbPattern(str,"\\[u\\](.*?)\\[/u\\]","<font style=\"text-decoration:underline;\">$1</font>");
        //str = EnCoder.replaceTag(str, "u");
        
        str = ubbPattern(str,"\\[font=(.*?)\\](.*?)\\[/font\\]","$2");
        str = ubbPattern(str,"\\[color=(.*?)\\](.*?)\\[/color\\]","<font style=\"color:$1\">$2</font>");
     	
        str = StringHelper.replace(str, "[b]", "");
        str = StringHelper.replace(str, "[i]", "");
        str = StringHelper.replace(str, "[u]", "");
        str = StringHelper.replace(str, "[center]", "");
        str = StringHelper.replace(str, "[/b]", "");
        str = StringHelper.replace(str, "[/i]", "");
        str = StringHelper.replace(str, "[/u]", "");
        str = StringHelper.replace(str, "[/center]", "");
        return str;
    }
    
    public static String ubbMedia(String str){
        str = ubbPattern(str, "\\[flash\\](.*?)\\[/flash\\]","<script type=\"text/javascript\">EncodeString_flash(500,400,'$1');</script>");
        str = ubbPattern(str, "\\[swf\\](.*?)\\[/swf\\]","<script type=\"text/javascript\">EncodeString_flash(500,400,'$1');</script>");
        str = ubbPattern(str, "\\[flash=*([\\d]*),*([\\d]*)\\](.*?)\\[/flash\\]","<script type=\"text/javascript\">EncodeString_flash($1,$2,'$3');</script>");
        str = ubbPattern(str, "\\[swf=*([\\d]*),*([\\d]*)\\](.*?)\\[/swf\\]","<script type=\"text/javascript\">EncodeString_flash($1,$2,'$3');</script>");
        /** real palyer start */
        str = ubbPattern(str, "\\[real\\](.*?)\\[/real\\]","<script type=\"text/javascript\">YeQiangWeiPlayer_real(450,350,-1,'$1');</script>");
        str = ubbPattern(str, "\\[real=*([\\d]*),*([\\d]*)\\](.*?)\\[/real\\]","<script type=\"text/javascript\">YeQiangWeiPlayer_real($1,$2,-1,'$3');</script>");
        str = ubbPattern(str, "\\[real=*([\\d]*),*([\\d]*),(-1|0)\\](.*?)\\[/real\\]","<script type=\"text/javascript\">YeQiangWeiPlayer_real($1,$2,$3,'$4');</script>");
        /** real palyer end */
        str = ubbPattern(str, "\\[video\\](.*?)\\[/video\\]","<script type=\"text/javascript\">YeQiangWeiPlayer_windows(450,350,1,'$1');</script>");
        str = ubbPattern(str, "\\[mp\\](.*?)\\[/mp\\]","<script type=\"text/javascript\">YeQiangWeiPlayer_windows(380,65,1,'$1');</script>");
        str = ubbPattern(str, "\\[video=*([\\d]*),*([\\d]*)\\](.*?)\\[/video\\]","<script type=\"text/javascript\">YeQiangWeiPlayer_windows($1,$2,1,'$3');</script>");
        str = ubbPattern(str, "\\[video=*([\\d]*),*([\\d]*),*([\\d]*)\\](.*?)\\[/video\\]","<script type=\"text/javascript\">YeQiangWeiPlayer_windows($1,$2,$3,'$4');</script>");
        str = ubbPattern(str, "\\[music_songId\\](.*?)\\[/music_songId\\]","<script type=\"text/javascript\" src=\"/music/ajax/play.jsp?songId=$1&act=player\"></script>");
        return str;
    }
    
    public static String advancedTag(String str){
    	if(Validator.isEmpty(str)) return "";
        /**
         * 为了不合正则表达式关键字符冲突替换$为其他字符然后再最下面再替换回去.
         */
    	str = StringHelper.replace(str, "$", "_yqw_");
    	str = ubbPattern(str, "\\[bt\\](.*?)\\[/bt\\]","<a href=\"$1\" target=\"_blank\">$1</a>");
    	str = ubbPattern(str, "\\[bt=(.*?)\\](.*?)\\[/bt\\]","<a href=\"$1\" target=\"_blank\">$2</a>");
    	str = ubbPattern(str,"\\[size=(.*?)\\](.*?)\\[/size\\]","<font size=\"$1\">$2</font>");
    	str = ubbPattern(str,"\\[quote=(.*?)\\](.*?)\\[/quote\\]","<div class=\"quote\"><div class=\"tr\">$1</div>$2</div>");
    	str = ubbPattern(str,"\\[quote\\](.*?)\\[/quote\\]","<div class=\"quote\">$1</div>");
    	str = EnCoder.replaceTag(str, "lrc","<div class=\"lrc\">","</div>");
    	str = EnCoder.replaceTag(str, "table");
    	str = EnCoder.replaceTag(str, "td");
    	str = EnCoder.replaceTag(str, "tr");
    	str = EnCoder.replaceTag(str, "fly","<marquee scrollamount=\"5\" delay=\"1\" onmouseout='start()' onmouseover='stop()'>","</marquee>");
    	str = EnCoder.replaceTag(str, "code","<div class=\"quote\"><div class=\"tr\">代码</div>","</div>");
    	str = EnCoder.simpleTag(str);
    	//str = EnCoder.codeColor(str);
    	str =  StringHelper.replace(str, "_yqw_", "$");
        return str;
    }
    
    public static String ubbPattern(String str, String cp, String mc){
    	return StringHelper.ubbPattern(str,cp,mc,"");
    }
    
    public static String replaceTag(String str, String tag){
    	int s = StringHelper.indexOf(str, "["+tag+"]");
    	int e = StringHelper.lastIndexOf(str, "[/"+tag+"]");
    	if(s!=-1&&e!=-1&&e>s){
    		str = StringHelper.replace(str, "["+tag+"]", "<"+tag+">");
    		str = StringHelper.replace(str, "[/"+tag+"]", "</"+tag+">");
    	}else{
    		str = StringHelper.replace(str, "["+tag+"]", "");
    		str = StringHelper.replace(str, "[/"+tag+"]","");
    	}
    	return str;
    }
    
    public static String replaceTag(String str, String tag, String rep_s, String rep_e){
    	int s = StringHelper.indexOf(str, "["+tag+"]");
    	int e = StringHelper.lastIndexOf(str, "[/"+tag+"]");
    	if(s!=-1&&e!=-1&&e>s){
    		str = StringHelper.replace(str, "["+tag+"]", rep_s);
    		str = StringHelper.replace(str, "[/"+tag+"]",rep_e);
    	}else{
    		str = StringHelper.replace(str, "["+tag+"]", "");
    		str = StringHelper.replace(str, "[/"+tag+"]","");
    	}
    	return str;
    }

}

⌨️ 快捷键说明

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