最近做论坛碰到了UBB的问题,这个很大众化的东西,怎么没有Java写的解释器呢,实在是该写一个。下面的这个不全,但是可以应付一下。
import java.util.*;
public class HTMLString{
public HTMLString(){}
public static String htmlEntities(String str){
return UBB(str);
}
public static boolean hasSpecialCharacter(String str){
/*用于合法性检查
if(str.indexOf("\\")!=-1){
return false;
}
if(str.indexOf("'")!=-1){
return false;
}
if(str.indexOf('"')!=-1){
return false;
}
if(str.indexOf("<")!=-1){
return false;
}
if(str.indexOf(">")!=-1){
return false;
}
*/
return true;
}
public static String UBB(String fString){
return (ChkString(FormatStr(fString)));
}
//屏蔽HTML代码,并处理回车和换行
public static String FormatStr(String fString){
/*
fString = repstr(fString, "‘","'");
fString = repstr(fString, "\"","“");
fString = repstr(fString, "<","<");
fString = repstr(fString, "<","<");
fString = repstr(fString, ">",">");
fString = repstr(fString, " ","\r");
*/
fString = repstr(fString, "´","'");
fString = repstr(fString, ""","\"");
fString = repstr(fString, "<","<");
fString = repstr(fString, ">",">");
fString = repstr(fString, " "," ");
fString = repstr(fString, " ","\r");
return (fString);
}
//把UBB代码转换成HTML代码以便正常显示
public static String ChkString(String fString){
fString = fString.trim();
if (fString.equals(""))
fString = " ";
else{
fString = doCode(fString, "<B>", "</B>","<b>","</b>");
fString = doCode(fString, "<u>", "</u>", "<u>", "</u>");
fString = doCode(fString, "<I>", "</I>", "<i>", "</i>");
fString = doCode(fString, "[red]", "[/red]", "<font color=red>", "</font id=red>");
fString = doCode(fString, "[green]", "[/green]", "<font color=green>", "</font id=green>");
fString = doCode(fString, "[blue]", "[/blue]", "<font color=blue>", "</font id=blue>");
fString = doCode(fString, "[white]", "[/white]", "<font color=white>", "</font id=white>");
fString = doCode(fString, "[purple]", "[/purple]", "<font color=purple>", "</font id=purple>");
fString = doCode(fString, "[yellow]", "[/yellow]", "<font color=yellow>", "</font id=yellow>");
fString = doCode(fString, "[violet]", "[/violet]", "<font color=violet>", "</font id=violet>");
fString = doCode(fString, "[brown]", "[/brown]", "<font color=brown>", "</font id=brown>");
fString = doCode(fString, "[black]", "[/black]", "<font color=black>", "</font id=black>");
fString = doCode(fString, "[pink]", "[/pink]", "<font color=pink>", "</font id=pink>");
fString = doCode(fString, "[orange]", "[/orange]", "<font color=orange>", "</font id=orange>");
fString = doCode(fString, "[gold]", "[/gold]", "<font color=gold>", "</font id=gold>");
fString = doCode(fString, "<h1>", "</h1>", "<h1>", "</h1>");
fString = doCode(fString, "<h2>", "</h2>", "<h2>", "</h2>");
fString = doCode(fString, "<h3>", "</h3>", "<h3>", "</h3>");
fString = doCode(fString, "<h4>", "</h4>", "<h4>", "</h4>");
fString = doCode(fString, "<h5>", "</h5>", "<h5>", "</h5>");
fString = doCode(fString, "<h6>", "</h6>", "<h6>", "</h6>");
fString = doCode(fString, "[size=1]", "[/size=1]", "<font size=1>", "</font id=size1>");
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




