tambc

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            5 Posts :: 21 Stories :: 5 Comments :: 0 Trackbacks
          ? import ??java.util.regex.? * ?;? // ?導入正則表達式包中的類?
          ?
          /** ?
          ?*??使網頁支持ubbcode.
          ?*??
          @author ??shanwei
          ?*??
          @version ??1.0
          ??
          */
          ?
          ?
          public ??? final ??? class ??Ubbcode? {
          ?
          ?????
          private ??? static ??? final ??String?ImagePath?? = ??? " ?images/? " ?;?? // ?定義圖片路徑?
          ????? private ??? static ??? final ??String?emotImagePath?? = ??? " ?images/emot/? " ?;
          ?
          ?????
          /** ?
          ?????*?@description?轉換代碼,使之支持ubbcode.
          ?????*??
          @param ??strContent?轉換前的代碼.
          ?????*??
          @return ??result?轉換后的內容.
          ??????
          */
          ?
          ?????
          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 ?;
          ?????????
          // ?轉換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>");
          ?????????
          // ?轉換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>此主題相關圖片如下:<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\? " ? > ?點擊瀏覽該文件? </ ?a? > ? " ?);?
          ????????? // ?轉換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>? " ?);
          ?????????
          // ?轉換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/>;? " ?);
          ?????????
          // ?轉換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>? " ?);
          ?????????
          // ?轉換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>? " ?);
          ?????????
          // ?轉換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=點擊開新窗口欣賞該FLASH動畫!?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=點擊開新窗口欣賞該FLASH動畫!?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>? " ?);
          ?????????
          // ?轉換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>? " ?);
          ?????????
          // ?轉換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? > ? " ?);?
          ?
          ?????????
          // ?自動識別網址?
          ????????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>? " ?);
          ?
          ?????????
          // ?自動識別www等開頭的網址?
          ????????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>? " ?);
          ?
          ?????????
          // ?自動識別Email地址,如打開本功能在瀏覽內容很多的帖子會引起服務器停頓?
          ????????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>? " ?);
          ?????????
          // ?轉換EM?
          ????????re?? = ??? " ?\\[em(.[^\\[]*)\\]? " ?;
          ????????pattern??
          = ??Pattern.compile(re);
          ????????matcher??
          = ??pattern.matcher(strContent);
          ????????strContent??
          = ??matcher.replaceAll(? " ?<img?src=\? "" ??+?emotImagePath?+?
          ????????????????????????????????????????? " ?em$1.gif\? " ??border? = ? 0 ??align? = ?middle? > ? " ?);?
          ????????? // ?轉換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>以下內容為程序代碼:</b><br>$1</td><?/table>? " ?);
          ?????????
          // ?轉換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>以下內容為程序代碼:</b><br>$1</td><?/table>? " ?);
          ?????????
          // ?轉換COLOR?
          ????????re?? = ??? " ?\\[color=(.[^\\[]*)\\](.[^\\[]*)\\[\\/color\\]? " ?;
          ????????pattern??
          = ??Pattern.compile(re);
          ????????matcher??
          = ??pattern.matcher(strContent);
          ????????strContent??
          = ??matcher.replaceAll(? " ?<font?color=$1>$2</font>? " ?);
          ?????????
          // ?轉換FACE?
          ????????re?? = ??? " ?\\[face=(.[^\\[]*)\\](.[^\\[]*)\\[\\/face\\]? " ?;
          ????????pattern??
          = ??Pattern.compile(re);
          ????????matcher??
          = ??pattern.matcher(strContent);
          ????????strContent??
          = ??matcher.replaceAll(? " ?<font?face=$1>$2</font>? " ?);
          ?????????
          // ?轉換ALIGN?
          ????????re?? = ??? " ?\\[align=(center|left|right)\\](.*)\\[\\/align\\]? " ?;
          ????????pattern??
          = ??Pattern.compile(re);
          ????????matcher??
          = ??pattern.matcher(strContent);
          ????????strContent??
          = ??matcher.replaceAll(? " ?<div?align=$1>$2</div>? " ?);
          ?????????
          // ?轉換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>? " ?);
          ?????????
          // ?轉換FLY?
          ????????re?? = ??? " ?\\[fly\\](.*)\\[\\/fly\\]? " ?;
          ????????pattern??
          = ??Pattern.compile(re);
          ????????matcher??
          = ??pattern.matcher(strContent);
          ????????strContent??
          = ??matcher.replaceAll(
          ?????????????????
          " ?<marquee?width=90%?behavior=alternate?scrollamount=3>$1</marquee>? " ?);
          ?????????
          // ?轉換MOVE?
          ????????re?? = ??? " ?\\[move\\](.*)\\[\\/move\\]? " ?;
          ????????pattern??
          = ??Pattern.compile(re);
          ????????matcher??
          = ??pattern.matcher(strContent);
          ????????strContent??
          = ??matcher.replaceAll(? " ?<MARQUEE?scrollamount=3>$1</marquee>? " ?);
          ?????????
          // ?轉換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>? " ?);
          ?????????
          // ?轉換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;
          ????}

          ?
          /** ?
          ?*??過濾javascript代碼.
          ?*??
          @param ??v轉換前的代碼.
          ?*??
          @return ??v轉換后的內容.
          ??
          */
          ?
          ?
          ?????
          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;
          ????}

          ?
          /** ?
          ?*??替換一些特殊符號為html語法標記.
          ?*??
          @param ??fString轉換前的代碼.
          ?*??
          @return ??fString轉換后的內容.
          ??
          */
          ??
          ?
          ? ?
          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語法標記轉換符號本身.
          ?*??
          @param ??fString轉換前的代碼.
          ?*??
          @return ??fString轉換后的內容.
          ??
          */
          ???
          ?
          ???
          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;
          ????}

          ?
          /** ?
          ?*??分割函數.
          ?*??
          @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;
          ????}

          ?
          /** ?
          ?*??替換函數.
          ?*??
          @param ??str替換前的字符串,substr被替換的字符,restr替換的字符.
          ?*??
          @return ??替換后并且經過除空處理的字符串.
          ??
          */
          ???
          ?????
          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);
          ????}

          ?
          /** ?
          ?*??除空處理函數.
          ?*??
          @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-12-22 16:22 tambc 閱讀(220) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 电白县| 丹东市| 富顺县| 专栏| 连州市| 雅江县| 甘孜| 富平县| 多伦县| 安仁县| 保定市| 锡林郭勒盟| 惠州市| 遂溪县| 阳泉市| 隆尧县| 西乌珠穆沁旗| 亳州市| 黎川县| 青田县| 珲春市| 太原市| 滦平县| 泾源县| 文安县| 铜梁县| 荆门市| 彩票| 永德县| 靖宇县| 曲靖市| 闽清县| 华池县| 多伦县| 张家界市| 天祝| 绥化市| 武城县| 中山市| 南木林县| 云林县|