📄 strutil.java
字号:
try { Double.parseDouble(str); return true; } catch (NumberFormatException nfe) { return false; } } public static boolean isCharOrNum(String s) { int len = s.length(); for (int i = 0; i < len; ++i) { char ch = s.charAt(i); if (!(((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) || ((ch >= '0') && (ch <= '9')))) { return false; } } return true; } public static boolean isSimpleCode(String s) { int len = s.length(); for (int i = 0; i < len; ++i) { char ch = s.charAt(i); if (!(((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) || ((ch >= '0') && (ch <= '9')) || ch == '-' || ch == '_')) { return false; } } return true; } public static boolean isChars(String s) { int len = s.length(); for (int i = 0; i < len; ++i) { char ch = s.charAt(i); if (!(((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')))) { return false; } } return true; } public static boolean isNotCN(String str) { Pattern pa = Pattern.compile("[\u4E00-\u9FA0]", Pattern.CANON_EQ); Matcher m = pa.matcher(str); if (m.find()) return false; else return true; } public static String FormatDate(java.util.Date d, String format) { if (d == null) return ""; SimpleDateFormat myFormatter = new SimpleDateFormat(format); return myFormatter.format(d); } public static String FormatPrice(double value) { String subval = "0.00"; if (value > 0.0) { subval = Double.toString(value); int decimal_len = subval.length() - (subval.lastIndexOf('.') + 1); if (decimal_len > 1) subval = subval.substring(0, subval.lastIndexOf('.') + 3); else subval += "0"; } return subval; } public static String FormatPrice(String value) { if (value == null) return null; String subval = "0.00"; if (Double.parseDouble(value) > 0.0) { subval = value; int decimal_len = subval.length() - (subval.lastIndexOf('.') + 1); if (decimal_len > 1) subval = subval.substring(0, subval.lastIndexOf('.') + 3); else subval += "0"; } return subval; } public static String HtmlEncode(String str) { if (str == null || str.equals("")) return ""; java.lang.StringBuffer buf = new java.lang.StringBuffer(str.length() + 6); char ch = ' '; for (int i = 0; i < str.length(); i++) { ch = str.charAt(i); if (ch == '<') buf.append("<"); else if (ch == '>') buf.append(">"); else if (ch == '\'') buf.append("'"); else if (ch == '\"') buf.append("""); else if (ch == '&') buf.append("&"); else buf.append(ch); } str = buf.toString(); return str; } public static String toHtml(String str) { if (str == null || str.equals("")) return ""; java.lang.StringBuffer buf = new java.lang.StringBuffer(str.length() + 6); char ch = ' '; for (int i = 0; i < str.length(); i++) { ch = str.charAt(i); if (ch == '<') buf.append("<"); else { if (ch == '>') buf.append(">"); else { if (ch == ' ') buf.append(" "); else { if (ch == '\n') buf.append("<br>"); else { if (ch == '\'') buf.append("'"); else { if (ch == '\"') buf.append("""); else buf.append(ch); } } } } } } str = buf.toString(); return str; } public static String LoadString(HttpServletRequest request, String key) { return SkinUtil.LoadString(request, "res.cn.js.fan.util.StrUtil", key); } public static String ubbWithoutAutoLink(HttpServletRequest request, String content) { return ubb(request, content, true, false); } public static String ubb(HttpServletRequest request, String content, boolean show_smile, boolean isAutoLink) { if (content == null) return ""; String patternStr = "", replacementStr = ""; Pattern pattern; Matcher matcher; if (show_smile) { patternStr = "\\[em(.[^\\[]*)\\]"; replacementStr = "<img src=images/emot/em$1.gif border=0 align=middle>"; pattern = Pattern.compile(patternStr); matcher = pattern.matcher(content); content = matcher.replaceAll(replacementStr); } patternStr = "(\\[URL\\])(.[^\\[]*)(\\[\\/URL\\])"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<A HREF=\"$2\" TARGET=_blank>$2</A>"); patternStr = "\\[URL=([^\\[]*?)\\](.[^\\[]*?)(\\[\\/URL\\])"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<A HREF=\"$1\" TARGET=_blank>$2</A>"); pattern = Pattern.compile( "(\\[EMAIL\\])(\\S+\\@.[^\\[]*)(\\[\\/EMAIL\\])"); matcher = pattern.matcher(content); content = matcher.replaceAll( "<img align=absmiddle src=images/email1.gif><A HREF=\"mailto:$2\">$2</A>"); pattern = Pattern.compile( "(\\[EMAIL=(\\S+\\@.[^\\[]*)\\])(.[^\\[]*)(\\[\\/EMAIL\\])"); matcher = pattern.matcher(content); content = matcher.replaceAll("<img align=absmiddle src=images/email1.gif><A HREF=\"mailto:$2\" TARGET=_blank>$3</A>"); patternStr = "\\[color=(.[^\\[]*)\\](.*)\\[\\/color\\]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<font color=$1>$2</font>"); patternStr = "\\[face=(.[^\\[]*)\\](.[^\\[]*)\\[\\/face\\]"; pattern = Pattern.compile(patternStr); matcher = pattern.matcher(content); content = matcher.replaceAll("<font face=$1>$2</font>"); patternStr = "\\[center\\](.+)\\[\\/center\\]"; pattern = Pattern.compile(patternStr); matcher = pattern.matcher(content); content = matcher.replaceAll("<div align=center>$1</div>"); patternStr = "\\[right\\](.[^\\[]*)\\[\\/right\\]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<div align=right>$1</div>"); patternStr = "\\[edit\\](.[^\\[]*)\\[\\/edit\\]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<div align=left><BR><i>$1</i></div>"); patternStr = "\\[QUOTE\\](.[^\\[]*)\\[\\/QUOTE\\]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<table align=center style=\"width:80%\" cellpadding=5 cellspacing=1 class=tableborder1><TR><TD class=123>$1</td></tr></table>"); patternStr = "\\[CODE\\](.[^\\[]*)\\[\\/CODE\\]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); if (matcher.find()) { String code = matcher.group(1); code = code.replaceAll("<br ?/?>", "\n"); code = code.replaceAll("<BR ?/?>", "\n"); String codeStr = "<div><textarea name=\"JSCode" + INT_HELPER + "\" rows=\"10\" cols=\"62\">" + code + "</textarea>"; codeStr += "<br />"; codeStr += "<input name=\"button\" type=\"button\" onclick=\"runJS(JSCode" + INT_HELPER + ")\" value=\"" + LoadString(request, "runJS") + "\" /> "; codeStr += "<input name=\"button\" type=\"button\" onclick=\"copyJS(JSCode" + INT_HELPER + ")\" value=\"" + LoadString(request, "copyJS") + "\" /> "; codeStr += "<input name=\"button\" type=\"button\" onclick=\"saveJS(JSCode" + INT_HELPER + ")\" value=\"" + LoadString(request, "saveJS") + "\" />"; codeStr += LoadString(request, "JS_hint") + "</div>"; INT_HELPER++; if (INT_HELPER >= 50000) { INT_HELPER = 0; } content = matcher.replaceAll(codeStr); } patternStr = "\\[fly\\](.*)\\[\\/fly\\]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll( "<marquee width=90% behavior=alternate scrollamount=3>$1</marquee>"); patternStr = "\\[move\\](.*)\\[\\/move\\]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<MARQUEE scrollamount=3>$1</marquee>"); patternStr = "\\[glow=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\\](.*)\\[\\/glow]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll( "<table width=$1 style=\"filter:glow(color=$2, strength=$3)\">$4</table>"); patternStr = "\\[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\\](.[^\\[]*)\\[\\/SHADOW]"; pattern = Pattern.compile(patternStr); matcher = pattern.matcher(content); content = matcher.replaceAll( "<table width=$1 style=\"filter:shadow(color=$2, strength=$3)\">$4</table>"); patternStr = "\\[I\\](.*?)\\[\\/I\\]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<i>$1</i>"); patternStr = "\\[U\\](.*?)(\\[\\/U\\])"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<u>$1</u>"); patternStr = "\\[B\\](.*?)(\\[\\/B\\])"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<b>$1</b>"); patternStr = "\\[size=([1-8])\\](.[^\\[]*)\\[\\/size\\]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll("<font size=$1>$2</font>"); patternStr = "\\[dir=*([0-9]*),*([0-9]*)\\](.*)\\[\\/dir]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = 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><BR>"); patternStr = "\\[QT=*([0-9]*),*([0-9]*)\\](.*)\\[\\/QT]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = 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=hhttttpp://www.apple.com/quicktime/></embed>"); patternStr = "\\[mp=*([0-9]*),*([0-9]*)\\](.*)\\[\\/mp]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = 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=hhttttpp://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=$3 width=$1 height=$2></embed></object><BR>"); patternStr = "\\[rm=*([0-9]*),*([0-9]*)\\](.*)\\[\\/rm]"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = 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><BR>"); patternStr = "(\\[flash\\])(.[^\\[]*)(\\[\\/flash\\])"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); content = matcher.replaceAll( "<a href=\"$2\" TARGET=_blank><IMG SRC=images/pic/swf.gif border=0 alt=" + LoadString(request, "click_open_win") + " height=16 width=16>" + LoadString(request, "view_full_win") + "</a><br><OBJECT codeBase=hhttttpp://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,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='hhttttpp://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=500 height=400></embed>$2</OBJECT><BR>"); patternStr = "(\\[flash=*([0-9]*),*([0-9]*)\\])(.[^\\[]*)(\\[\\/flash\\])"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -