鄧華

          BlogJava 聯(lián)系 聚合 管理
            48 Posts :: 0 Stories :: 149 Comments :: 0 Trackbacks
          ? import ?java.util.regex. * ; // 導(dǎo)入正則表達(dá)式包中的類
          ?
          /**
          ?*??使網(wǎng)頁(yè)支持ubbcode.
          ?*?
          @author ?shanwei
          ?*?
          @version ?1.0
          ?
          */
          ?
          public ? final ? class ?Ubbcode?{
          ?
          ????
          private ? static ? final ?String?ImagePath? = ? " images/ " ;? // 定義圖片路徑
          ???? private ? static ? final ?String?emotImagePath? = ? " images/emot/ " ;
          ?
          ????
          /**
          ?????*?@description?轉(zhuǎn)換代碼,使之支持ubbcode.
          ?????*?
          @param ?strContent?轉(zhuǎn)換前的代碼.
          ?????*?
          @return ?result?轉(zhuǎn)換后的內(nèi)容.
          ?????
          */
          ????
          public ? static ?String?UBBCode(String?strContent)?{? //
          ????????strContent? = ?dvHTMLEncode(strContent);
          ????????strContent?
          = ?FilterJS(strContent);
          ????????String?re;
          ????????
          // re.IgnoreCase?=true
          ????????
          // re.Global=True
          ????????Pattern?pattern? = ? null ;? //
          ????????Matcher?matcher? = ? null ;
          ????????
          // 轉(zhuǎn)換IMG
          ????????re? = ? " \\[IMG\\](http|https|ftp):\\/\\/(.[^\\[]*)\\[\\/IMG\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <?a?onfocus=this.blur()?href=\ " $ 1 : // $2\"?target=_blank><IMG?SRC=\"$1:? // $2\"?border=0?alt=按此在新窗口瀏覽圖片?onload=\"javascript:if(this.width>?screen.width-333)this.width=screen.width-333\"></a>");
          ????????
          // 轉(zhuǎn)換UPLOAD
          ????????re? = ? " \\[UPLOAD=(gif|jpg|jpeg|bmp|png)\\](.[^\\[]*)(gif|jpg|jpeg|bmp|png)\\[\\/UPLOAD\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <br><IMG?SRC=\ "" ?+?ImagePath?+? " $ 1 .gif?\ " ?border=0>此主題相關(guān)圖片如下:<br><A?HREF=\ " $ 2 $ 1 \ " ?TARGET=_blank>?<IMG?SRC=\ " $ 2 $ 1 \ " ?border=0?alt=按此在新窗口瀏覽圖片?onload=\ " javascript: if ?( this .width > screen.width - 333 ) this .width = screen.width - 333 \ " ></A> " );
          ????????re?
          = ? " \\[UPLOAD=(.[^\\[]*)\\](.[^\\[]*)\\[\\/UPLOAD\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <br><IMG?SRC=\ "" ?+?ImagePath?+
          ???????????????????????????????????????? " $1.gif\ " ?border = 0 > ? < a?href = \ " $2\ " > 點(diǎn)擊瀏覽該文件 </ a > " );
          ???????? // 轉(zhuǎn)換DIR
          ????????re? = ? " \\[DIR=*([0-9]*),*([0-9]*)\\](.[^\\[]*)\\[\\/DIR] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <object?classid=clsid:166B1BCA-3F9C-11CF-8075-444553540000?codebase=http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0?width=$1?height=$2><param?name=src?value=$3><embed?src=$3?pluginspage=http://www.macromedia.com/shockwave/download/?width=$1?height=$2></embed></object> " );
          ????????
          // 轉(zhuǎn)換QT
          ????????re? = ? " \\[QT=*([0-9]*),*([0-9]*)\\](.[^\\[]*)\\[\\/QT] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <embed?src=$3?width=$1?height=$2?autoplay=true?loop=false?controller=true?playeveryframe=false?cache=false?scale=TOFIT?bgcolor=#000000?kioskmode=false?targetcache=false?pluginspage=http://www.apple.com/quicktime/>; " );
          ????????
          // 轉(zhuǎn)換MP
          ????????re? = ? " \\[MP=*([0-9]*),*([0-9]*)\\](.[^\\[]*)\\[\\/MP] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <object?align=middle?classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95?class=OBJECT?id=MediaPlayer?width=$1?height=$2?><param?name=ShowStatusBar?value=-1><param?name=Filename?value=$3><embed?type=application/x-oleobject?codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701?flename=mp?src=$3??width=$1?height=$2></embed></object> " );
          ????????
          // 轉(zhuǎn)換RM
          ????????re? = ? " \\[RM=*([0-9]*),*([0-9]*)\\](.[^\\[]*)\\[\\/RM] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <OBJECT?classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA?class=OBJECT?id=RAOCX?width=$1?height=$2><PARAM?NAME=SRC?VALUE=$3><PARAM?NAME=CONSOLE?VALUE=Clip1><PARAM?NAME=CONTROLS?VALUE=imagewindow><PARAM?NAME=AUTOSTART?VALUE=true></OBJECT><br><OBJECT?classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA?height=32?id=video2?width=$1><PARAM?NAME=SRC?VALUE=$3><PARAM?NAME=AUTOSTART?VALUE=-1><PARAM?NAME=CONTROLS?VALUE=controlpanel><PARAM?NAME=CONSOLE?VALUE=Clip1></OBJECT> " );
          ????????
          // 轉(zhuǎn)換FLASH
          ????????re? = ? " (\\[FLASH\\])(.[^\\[]*)(\\[\\/FLASH\\]) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll(
          ????????????????
          " <a?href=\ " $ 2 \ " ?TARGET=_blank><IMG?SRC=\ "" ?+?ImagePath?+? " swf.gif\ " ?border=0?alt=點(diǎn)擊開(kāi)新窗口欣賞該FLASH動(dòng)畫!?height=16?width=16>[全屏欣賞]</a><br><OBJECT?codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0?classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000?width=500?height=400><PARAM?NAME=movie?VALUE=\ " $ 2 \ " ><PARAM?NAME=quality?VALUE=high><embed?src=\ " $ 2 \ " ?quality=high?pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'?type='application/x-shockwave-flash'?width=500?height=400>$2</embed></OBJECT> " );
          ????????re?
          = ? " (\\[FLASH=*([0-9]*),*([0-9]*)\\])(.[^\\[]*)(\\[\\/FLASH\\]) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll(
          ????????????????
          " <a?href=\ " $ 4 \ " ?TARGET=_blank><IMG?SRC=\ "" ?+?ImagePath?+? " swf.gif?\ " ?border=0?alt=點(diǎn)擊開(kāi)新窗口欣賞該FLASH動(dòng)畫!?height=16?width=16>[全屏欣賞]</a>?<br><OBJECT?codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0?classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000?width=$2?height=$3><PARAM?NAME=movie?VALUE=\ " $ 4 \ " ><PARAM?NAME=quality?VALUE=high><embed?src=\ " $ 4 \ " ?quality=high?pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'?type='application/x-shockwave-flash'?width=$2?height=$3>$4</embed></OBJECT> " );
          ????????
          // 轉(zhuǎn)換URL
          ????????re? = ? " (\\[URL\\])(.[^\\[]*)(\\[\\/URL\\]) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <A?HREF=\ " $ 2 \ " ?TARGET=_blank>$2</A> " );
          ????????re?
          = ? " (\\[URL=(.[^\\[]*)\\])(.[^\\[]*)(\\[\\/URL\\]) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <A?HREF=\ " $ 2 \ " ?TARGET=_blank>$3</A> " );
          ????????
          // 轉(zhuǎn)換EMAIL
          ????????re? = ? " (\\[EMAIL\\])(\\S+\\@.[^\\[]*)(\\[\\/EMAIL\\]) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <img?align=absmiddle?src=\ "" ?+
          ????????????????????????????????????????ImagePath? +
          ????????????????????????????????????????
          " email1.gif\ " >< A?HREF = \ " mailto:$2\ " > $ 2 </ A > " );
          ????????re? = ? " (\\[EMAIL=(\\S+\\@.[^\\[]*)\\])(.[^\\[]*)(\\[\\/EMAIL\\]) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <img?align=absmiddle?src=\ "" ?+
          ????????????????????????????????????????ImagePath? +
          ????????????????????????????????????????
          " email1.gif\ " >< A?HREF = \ " mailto:$2\ " ?TARGET = _blank > $ 3 </ A > " );
          ?
          ????????
          // 自動(dòng)識(shí)別網(wǎng)址
          ????????re? =
          ????????????????
          " ^((http|https|ftp|rtsp|mms):(\\/\\/|\\\\)[A-Za-z0-9\\./=\\?%\\-&_~`@':+!]+) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll(
          ????????????????
          " <img?align=absmiddle?src=pic/url.gif?border=0><a?target=_blank?href=$1>$1</a> " );
          ????????re?
          =
          ????????????????
          " ((http|https|ftp|rtsp|mms):(\\/\\/|\\\\)[A-Za-z0-9\\./=\\?%\\-&_~`@':+!]+)$ " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll(
          ????????????????
          " <img?align=absmiddle?src=pic/url.gif?border=0><a?target=_blank?href=$1>$1</a> " );
          ????????re?
          = ? " ([^>=\ " ])((http | https | ftp | rtsp | mms):(\\ / \\ /| \\\\)[A - Za - z0 - 9 \\. /= \\ ?% \\ -& _ ~ `@ ' :+!]+)";
          ????????pattern? = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " $1<img?align=absmiddle?src=pic/url.gif?border=0><a?target=_blank?href=$2>$2</a> " );
          ?
          ????????
          // 自動(dòng)識(shí)別www等開(kāi)頭的網(wǎng)址
          ????????re? = ? " ([^(http://|http:\\\\)])((www|cn)[.](\\w)+[.]{1,}(net|com|cn|org|cc)(((\\/[\\~]*|\\[\\~]*)(\\w)+)|[.](\\w)+)*(((([?](\\w)+){1}[=]*))*((\\w)+){1}([\\&](\\w)+[\\=](\\w)+)*)*) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <img?align=absmiddle?src=pic/url.gif?border=0><a?target=_blank?href=http://$2>$2</a> " );
          ?
          ????????
          // 自動(dòng)識(shí)別Email地址,如打開(kāi)本功能在瀏覽內(nèi)容很多的帖子會(huì)引起服務(wù)器停頓
          ????????re? = ? " ([^(=)])((\\w)+[@]{1}((\\w)+[.]){1,3}(\\w)+) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <img?align=absmiddle?src=pic/url.gif?border=0><a?target=_blank?href=\ " mailto:$ 2 \ " >$2</a> " );
          ????????
          // 轉(zhuǎn)換EM
          ????????re? = ? " \\[em(.[^\\[]*)\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <img?src=\ "" ?+?emotImagePath?+
          ???????????????????????????????????????? " em$1.gif\ " ?border = 0 ?align = middle > " );
          ???????? // 轉(zhuǎn)換HTML
          ????????re? = ? " \\[HTML\\](.[^\\[]*)\\[\\/HTML\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <?table?width='100%'?border='0'?cellspacing='0'?cellpadding='6'?class=tableborder1>?<td><b>以下內(nèi)容為程序代碼:</b><br>$1</td><?/table> " );
          ????????
          // 轉(zhuǎn)換CODE
          ????????re? = ? " \\[code\\](.[^\\[]*)\\[\\/code\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <?table?width='100%'?border='0'?cellspacing='0'?cellpadding='6'?class=tableborder1>?<td><b>以下內(nèi)容為程序代碼:</b><br>$1</td><?/table> " );
          ????????
          // 轉(zhuǎn)換COLOR
          ????????re? = ? " \\[color=(.[^\\[]*)\\](.[^\\[]*)\\[\\/color\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <font?color=$1>$2</font> " );
          ????????
          // 轉(zhuǎn)換FACE
          ????????re? = ? " \\[face=(.[^\\[]*)\\](.[^\\[]*)\\[\\/face\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <font?face=$1>$2</font> " );
          ????????
          // 轉(zhuǎn)換ALIGN
          ????????re? = ? " \\[align=(center|left|right)\\](.*)\\[\\/align\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <div?align=$1>$2</div> " );
          ????????
          // 轉(zhuǎn)換QUOTE
          ????????re? = ? " \\[QUOTE\\](.*)\\[\\/QUOTE\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <table?style=\ " width: 80 % \ " ?cellpadding=5?cellspacing=1?class=tableborder1><TR><TD?class=tableborder1>$1</td></tr></table><br> " );
          ????????
          // 轉(zhuǎn)換FLY
          ????????re? = ? " \\[fly\\](.*)\\[\\/fly\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll(
          ????????????????
          " <marquee?width=90%?behavior=alternate?scrollamount=3>$1</marquee> " );
          ????????
          // 轉(zhuǎn)換MOVE
          ????????re? = ? " \\[move\\](.*)\\[\\/move\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <MARQUEE?scrollamount=3>$1</marquee> " );
          ????????
          // 轉(zhuǎn)換GLOW
          ????????re? =
          ????????????????
          " \\[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\\](.[^\\[]*)\\[\\/GLOW] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll(
          ????????????????
          " <table?width=$1?style=\ " filter:glow(color = $ 2 ,?strength = $ 3 )\ " >$4</table> " );
          ????????
          // 轉(zhuǎn)換SHADOW
          ????????re? =
          ????????????????
          " \\[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\\](.[^\\[]*)\\[\\/SHADOW] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll(
          ????????????????
          " <table?width=$1?style=\ " filter:shadow(color = $ 2 ,?strength = $ 3 )\ " >$4</table> " );
          ?
          ????????re?
          = ? " \\[i\\](.[^\\[]*)\\[\\/i\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <i>$1</i> " );
          ????????re?
          = ? " \\[u\\](.[^\\[]*)(\\[\\/u\\]) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <u>$1</u> " );
          ????????re?
          = ? " \\[b\\](.[^\\[]*)(\\[\\/b\\]) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <b>$1</b> " );
          ????????re?
          = ? " \\[size=([1-4])\\](.[^\\[]*)\\[\\/size\\] " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(strContent);
          ????????strContent?
          = ?matcher.replaceAll( " <font?size=$1>$2</font> " );
          ????????
          /* re?="(\\s)";
          ?????????????????matcher?=?pattern.matcher(strContent);??
          ?????????????????strContent=matcher.replaceAll("<I>$1</I>");
          */
          ????????re?
          = ? null ;
          ????????
          return ?strContent;
          ????}
          ?
          /**
          ?*??過(guò)濾javascript代碼.
          ?*?
          @param ?v轉(zhuǎn)換前的代碼.
          ?*?
          @return ?v轉(zhuǎn)換后的內(nèi)容.
          ?
          */
          ?
          ????
          public ? static ?String?FilterJS(String?v)?{
          ????????
          if ?( ! v.equals( " null " )? && ?v? != ? null )?{
          ????????????String?t,?re;
          ????????????re?
          = ? " (javascript) " ;
          ????????????t?
          = ?re.replace(v,? " javascript " );
          ????????????re?
          = ? " (jscript:) " ;
          ????????????t?
          = ?re.replace(t,? " jscript: " );
          ????????????re?
          = ? " (js:) " ;
          ????????????t?
          = ?re.replace(t,? " js: " );
          ????????????re?
          = ? " (value) " ;
          ????????????t?
          = ?re.replace(t,? " value " );
          ????????????re?
          = ? " (about:) " ;
          ????????????t?
          = ?re.replace(t,? " about: " );
          ????????????re?
          = ? " (file:) " ;
          ????????????t?
          = ?re.replace(t,? " file: " );
          ????????????re?
          = ? " (document.cookie) " ;
          ????????????t?
          = ?re.replace(t,? " documents.cookie " );
          ????????????re?
          = ? " (vbscript:) " ;
          ????????????t?
          = ?re.replace(t,? " vbscript: " );
          ????????????re?
          = ? " (vbs:) " ;
          ????????????t?
          = ?re.replace(t,? " vbs: " );
          ????????????re?
          = ? " (on(mouse|exit|error|click|key)) " ;
          ????????????t?
          = ?re.replace(t,? " on$2 " );
          ????????????re?
          = ? " (&#) " ;
          ????????????t?
          = ?re.replace(t,? " &# " );
          ????????????re?
          = ? null ;
          ????????}
          ????????
          return ?v;
          ????}
          ?
          /**
          ?*??替換一些特殊符號(hào)為html語(yǔ)法標(biāo)記.
          ?*?
          @param ?fString轉(zhuǎn)換前的代碼.
          ?*?
          @return ?fString轉(zhuǎn)換后的內(nèi)容.
          ?
          */ ?
          ?
          ? 
          public ? static ?String?dvHTMLEncode(String?fString)?{
          ????????
          if ?( ! fString.equals( " null " )? && ?fString? != ? null )?{
          ????????????fString?
          = ?replace(fString,? " > " ,? " > " );
          ????????????fString?
          = ?replace(fString,? " < " ,? " < " );
          ????????????fString?
          = ?replace(fString,? " & " ,? " & " );
          ????????????fString?
          = ?replace(fString,? " ? " ,? " ? " );
          ????????????fString?
          = ?replace(fString,? " \ "" ,? """ );
          ????????????fString?
          = ?replace(fString,? " \' " ,? " ' " );
          ????????????fString?
          = ?replace(fString,? " \r " ,? "" );
          ????????????fString?
          = ?replace(fString,? " \n " ,? " <BR>? " );
          ????????????fString?
          = ?replace(fString,? " \\ " ,? " \ " );
          ????????}
          ????????
          return ?fString;
          ????}
          ?
          /**
          ?*??html語(yǔ)法標(biāo)記轉(zhuǎn)換符號(hào)本身.
          ?*?
          @param ?fString轉(zhuǎn)換前的代碼.
          ?*?
          @return ?fString轉(zhuǎn)換后的內(nèi)容.
          ?
          */ ??
          ?
          ??
          public ? static ?String?dvHTMLCode(String?fString)?{
          ????????
          if ?( ! fString.equals( " null " )? && ?fString? != ? null )?{
          ????????????fString?
          = ?replace(fString,? " > " ,? " > " );
          ????????????fString?
          = ?replace(fString,? " < " ,? " < " );
          ????????????fString?
          = ?replace(fString,? " & " ,? " & " );
          ????????????fString?
          = ?replace(fString,? " ? " ,? " ? " );
          ????????????fString?
          = ?replace(fString,? """ ,? " \ "" );
          ????????????fString?
          = ?replace(fString,? " ' " ,? " \' " );
          ????????????fString?
          = ?replace(fString,? " \ " ,? " \\ " );
          ????????????fString?
          = ?replace(fString,? " <BR> " ,? " \n " );
          ????????}
          ????????
          return ?fString;
          ????}
          ?
          ????
          public ? static ?String?nohtml(String?str)?{
          ????????String?re;
          ????????Pattern?pattern?
          = ? null ;
          ????????Matcher?matcher?
          = ? null ;
          ????????re?
          = ? " (\\<.[^\\<]*\\>) " ;
          ????????pattern?
          = ?Pattern.compile(re);
          ????????matcher?
          = ?pattern.matcher(str);
          ????????str?
          = ?matcher.replaceAll( " ? " );
          ????????re?
          = ? " (\\<\\/[^\\<]*\\>) " ;
          ????????str?
          = ?re.replace(str,? " ? " );
          ????????re?
          = ? null ;
          ????????
          return ?str;
          ????}
          ?
          /**
          ?*??分割函數(shù).
          ?*?
          @param ?source原字符串,div將要被分割的字符串.
          ?*?
          @return ?returnStr分割后的字符串.
          ?
          */ ??
          ?
          ???
          public ? static ?String[]?split(String?source,?String?div)?{
          ????????
          int ?arynum? = ? 0 ,?intIdx? = ? 0 ,?intIdex? = ? 0 ,?div_length? = ?div.length();
          ????????
          if ?(source.compareTo( "" )? != ? 0 )?{
          ????????????
          if ?(source.indexOf(div)? != ? - 1 )?{
          ????????????????intIdx?
          = ?source.indexOf(div);
          ????????????????
          for ?( int ?intCount? = ? 1 ;?;?intCount ++ )?{
          ????????????????????
          if ?(source.indexOf(div,?intIdx? + ?div_length)? != ? - 1 )?{
          ????????????????????????intIdx?
          = ?source.indexOf(div,?intIdx? + ?div_length);
          ????????????????????????arynum?
          = ?intCount;
          ????????????????????}?
          else ?{
          ????????????????????????arynum?
          += ? 2 ;
          ????????????????????????
          break ;
          ????????????????????}
          ????????????????}
          ????????????}?
          else ?{
          ????????????????arynum?
          = ? 1 ;
          ????????????}
          ????????}?
          else ?{
          ????????????arynum?
          = ? 0 ;
          ?
          ????????}
          ????????intIdx?
          = ? 0 ;
          ????????intIdex?
          = ? 0 ;
          ????????String[]?returnStr?
          = ? new ?String[arynum];
          ?
            
          if ?(source.compareTo( "" )? != ? 0 )?{
          ????????????
          if ?(source.indexOf(div)? != ? - 1 )?{
          ????????????????intIdx?
          = ?( int )?source.indexOf(div);
          ????????????????returnStr[
          0 ]? = ?(String)?source.substring( 0 ,?intIdx);
          ????????????????
          for ?( int ?intCount? = ? 1 ;?;?intCount ++ )?{
          ????????????????????
          if ?(source.indexOf(div,?intIdx? + ?div_length)? != ? - 1 )?{
          ????????????????????????intIdex?
          = ?( int )?source.indexOf(div,?intIdx? + ?div_length);
          ????????????????????????returnStr[intCount]?
          = ?(String)?source.substring(intIdx? +
          ????????????????????????????????div_length,
          ????????????????????????????????intIdex);
          ????????????????????????intIdx?
          = ?( int )?source.indexOf(div,?intIdx? + ?div_length);
          ????????????????????}?
          else ?{
          ????????????????????????returnStr[intCount]?
          = ?(String)?source.substring(intIdx? +
          ????????????????????????????????div_length,
          ????????????????????????????????source.length());
          ????????????????????????
          break ;
          ????????????????????}
          ????????????????}
          ????????????}?
          else ?{
          ????????????????returnStr[
          0 ]? = ?(String)?source.substring( 0 ,?source.length());
          ????????????????
          return ?returnStr;
          ????????????}
          ????????}?
          else ?{
          ????????????
          return ?returnStr;
          ????????}
          ????????
          return ?returnStr;
          ????}
          ?
          /**
          ?*??替換函數(shù).
          ?*?
          @param ?str替換前的字符串,substr被替換的字符,restr替換的字符.
          ?*?
          @return ?替換后并且經(jīng)過(guò)除空處理的字符串.
          ?
          */ ??
          ????
          public ? static ?String?replace(String?str,?String?substr,?String?restr)?{
          ????????String[]?tmp?
          = ?split(str,?substr);
          ????????String?returnstr?
          = ? null ;
          ????????
          if ?(tmp.length? != ? 0 )?{
          ????????????returnstr?
          = ?tmp[ 0 ];
          ????????????
          for ?( int ?i? = ? 0 ;?i? < ?tmp.length? - ? 1 ;?i ++ )?{
          ????????????????returnstr?
          = ?dealNull(returnstr)? + ?restr? + ?tmp[i? + ? 1 ];
          ????????????}
          ????????}
          ????????
          return ?dealNull(returnstr);
          ????}
          ?
          /**
          ?*??除空處理函數(shù).
          ?*?
          @param ?str原字符串.
          ?*?
          @return ?處理后的字符串.
          ?
          */ ??
          ????
          public ? static ?String?dealNull(String?str)?{
          ????????String?returnstr?
          = ? null ;
          ????????
          if ?(str? == ? null )?{
          ????????????returnstr?
          = ? "" ;
          ????????}?
          else ?{
          ????????????returnstr?
          = ?str;
          ????????}
          ????????
          return ?returnstr;
          ????}
          ?
          ????
          public ? static ?String?tostring(Character?i)?{
          ????????Character?c?
          = ?i;
          ????????
          return ?c.toString();
          ????}
          ?
          }

          posted on 2006-05-24 09:53 鄧華的碎碎念 閱讀(1234) 評(píng)論(4)  編輯  收藏

          Feedback

          # re: java的ubb類 2007-06-01 15:27 yecool
          代碼有錯(cuò)  回復(fù)  更多評(píng)論
            

          # re: java的ubb類[未登錄](méi) 2008-03-04 12:02 apple
          把代碼放到類中有錯(cuò),請(qǐng)更正!  回復(fù)  更多評(píng)論
            

          # re: java的ubb類 2008-03-04 14:27 我為我狂
          真的嗎  回復(fù)  更多評(píng)論
            

          # re: java的ubb類 2009-07-30 08:33 CTO
          就這些簡(jiǎn)單的錯(cuò)誤引用著自行修改一下就可以了
          這還麻煩樓主。。。
          小小的鄙視一下
          挺樓主分享  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 通山县| 德昌县| 千阳县| 东海县| 红安县| 乌海市| 宁明县| 东乌珠穆沁旗| 平泉县| 全州县| 达孜县| 岳阳县| 香格里拉县| 钦州市| 越西县| 曲靖市| 赫章县| 息烽县| 开阳县| 南川市| 郴州市| 修水县| 巴彦县| 工布江达县| 古交市| 保山市| 濮阳市| 方山县| 岳池县| 靖安县| 轮台县| 高密市| 滦南县| 诸城市| 波密县| 宝山区| 自贡市| 潼关县| 交城县| 黑龙江省| 镇江市|