1、UBB代码处理
public static string UBBEncode( string strInput) { if (strInput == null) { return ""; } else { Regex rgxUBB; Match mthUBB; string str = strInput; str = HtmlEncode(str); str = SqlEncode(str); str = str.Replace(" "," "); str = str.Replace("\n","<br />"); StringBuilder strbUBB = new StringBuilder(); strbUBB.Append(str); //处理[b][/b]标记 rgxUBB = new Regex(@"(\[b\])([ \S\t]*?)(\[\/b\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<B>" + mthUBB.Groups[2].ToString() + "</B>"); } //处理[i][/i]标记 rgxUBB = new Regex(@"(\[i\])([ \S\t]*?)(\[\/i\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<I>" + mthUBB.Groups[2].ToString() + "</I>"); } //处理[U][/U]标记 rgxUBB = new Regex(@"(\[U\])([ \S\t]*?)(\[\/U\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<U>" + mthUBB.Groups[2].ToString() + "</U>"); } //处理标记 rgxUBB = new Regex(@"(\[url\])([ \S\t]*?)(\[\/url\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<A href=\"" + mthUBB.Groups[2].ToString() + "\" target=\"_blank\">" + mthUBB.Groups[2].ToString() + "</A>"); } //处理[url=xxx][/url]标记 rgxUBB = new Regex(@"(\[url=([ \S\t]+)\])([ \S\t]*?)(\[\/url\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<A href=\"" + mthUBB.Groups[2].ToString() + "\" target=\"_blank\">" + mthUBB.Groups[3].ToString() + "</A>"); } //处理[email][/email]标记 rgxUBB = new Regex(@"(\[email\])([ \S\t]*?)(\[\/email\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<A href=\"mailto:" + mthUBB.Groups[2].ToString() + "\" target=\"_blank\">" + mthUBB.Groups[2].ToString() + "</A>"); } //处理[email=xxx][/email]标记 rgxUBB = new Regex(@"(\[email=([ \S\t]+)\])([ \S\t]*?)(\[\/email\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<A href=\"mailto:" + mthUBB.Groups[2].ToString() + "\" target=\"_blank\">" + mthUBB.Groups[3].ToString() + "</A>"); } //处理[center][/center]标记 rgxUBB = new Regex(@"(\[center\])([ \S\t]*?)(\[\/center\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<div align=center>" + mthUBB.Groups[2].ToString() + "</div>"); } //处理标记 rgxUBB = new Regex(@"(\[img\])([ \S\t]*?)(\[\/img\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<img src=" + mthUBB.Groups[2].ToString() + " border=0 />"); } //处理[flash][/flash]和[flash=x,y][/flash]标记 strbUBB = strbUBBEncode(strbUBB,"flash"); //处理[mp][/mp]和[mp=x,y][/mp]标记 strbUBB = strbUBBEncode(strbUBB,"mp"); //处理[rm][/rm]和[rm=x,y][/rm]标记 strbUBB = strbUBBEncode(strbUBB,"rm"); //处理[code][/code]标记 strbUBB = strbUBBEncode(strbUBB,"code"); //处理[quote][/quote]标记 strbUBB = strbUBBEncode(strbUBB,"quote"); //处理[font=xxx][/font]标记 rgxUBB = new Regex(@"(\[font=([\S]+)\])([ \S\t]*?)(\[\/font\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<FONT FACE=" + mthUBB.Groups[2].ToString() + ">" + mthUBB.Groups[3].ToString() + "</FONT>"); } //处理[color=xxx][/color]标记 rgxUBB = new Regex(@"(\[color=([\S]+)\])([ \S\t]*?)(\[\/color\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<FONT COLOR=" + mthUBB.Groups[2].ToString() + ">" + mthUBB.Groups[3].ToString() + "</FONT>"); } //处理[size=xxx][/size]标记 rgxUBB = new Regex(@"(\[size=([1-7])\])([ \S\t]*?)(\[\/size\])",RegexOptions.IgnoreCase); for (mthUBB = rgxUBB.Match(strbUBB.ToString()); mthUBB.Success; mthUBB = mthUBB.NextMatch()) { strbUBB.Replace(mthUBB.Groups[0].ToString(),"<FONT SIZE=" + mthUBB.Groups[2].ToString() + ">" + mthUBB.Groups[3].ToString() + "</FONT>"); } return strbUBB.ToString(); } } private static StringBuilder strbUBBEncode(StringBuilder strbM_UBB, string strM_Name) { string strM_UBB = strbM_UBB.ToString(); if(strM_Name == "flash") { strM_UBB = Regex.Replace(strM_UBB,@"\[flash\](?<x>[^\]]*)\[\/flash\]",@"<a href=""$1"" TARGET=_blank>[全屏欣赏]</a><br/><OBJECT align=middle codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=400 height=300><PARAM NAME=movie VALUE=""$1""><PARAM NAME=quality VALUE=high><embed src=""$1"" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=500 height=400>$1</embed></OBJECT>",RegexOptions.IgnoreCase); strM_UBB = Regex.Replace(strM_UBB,@"\[flash=*([0-9]*),*([0-9]*)\](?<x>[^\]]*)\[\/flash\]",@"<a href=""$3"" TARGET=_blank>[全屏欣赏]</a><br/><OBJECT align=middle codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=$1 height=$2><PARAM NAME=movie VALUE=""$3""><PARAM NAME=quality VALUE=high><embed src=""$3"" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=$1 height=$2>$3</embed></OBJECT>",RegexOptions.IgnoreCase); } if(strM_Name == "mp") { strM_UBB = Regex.Replace(strM_UBB,@"\[mp\](?<x>[^\]]*)\[\/mp\]",@"<object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=400 height=300 ><param name=ShowStatusBar value=-1><param name=Filename value=$1><embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=$1 width=400 height=300></embed></object>",RegexOptions.IgnoreCase); strM_UBB = Regex.Replace(strM_UBB,@"\[mp=*([0-9]*),*([0-9]*)\](?<x>[^\]]*)\[\/mp\]",@"<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=$4 width=$1 height=$2></embed></object>",RegexOptions.IgnoreCase); } if(strM_Name == "rm") { strM_UBB = Regex.Replace(strM_UBB,@"\[rm\](?<x>[^\]]*)\[\/rm\]",@"<OBJECT align=middle classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=400 height=300><PARAM NAME=SRC VALUE=$1><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=400><PARAM NAME=SRC VALUE=$3><PARAM NAME=AUTOSTART VALUE=-1><PARAM NAME=CONTROLS VALUE=controlpanel><PARAM NAME=CONSOLE VALUE=Clip1></OBJECT>",RegexOptions.IgnoreCase); strM_UBB = Regex.Replace(strM_UBB,@"\[rm=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/rm\]",@"<OBJECT align=middle 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>",RegexOptions.IgnoreCase); } if(strM_Name == "code") { strM_UBB = Regex.Replace(strM_UBB,@"\[code\](?<x>[^\]]*)\[/code\]",@"—— 以下是代码 ——<br /><table border='1' width='100%' cellpadding='10' cellspacing='0'><tr><td>$1</td></tr></table>",RegexOptions.IgnoreCase); } if(strM_Name == "quote") { strM_UBB = Regex.Replace(strM_UBB,@"\[quote](?<x>.*)\[/quote]",@"—— 以下是引用 ——<br /><table border='1' width='100%' cellpadding='10' cellspacing='0'><tr><td>$1</td></tr></table>",RegexOptions.IgnoreCase); } strbM_UBB.Remove(0,strbM_UBB.Length); strbM_UBB.Append(strM_UBB); return strbM_UBB; }Html编码和处理和SQL过滤及其反向处理
public static string SqlEncode( string strInput) { string str; try { str = strInput.Replace("'","''"); } catch { str = "error"; } return str; } public static string SqlDecode( string strInput) { string str; try { str = strInput.Replace("''","'"); } catch { str = "error"; } return str; } public static string HtmlEncode( string strInput) { string str; try { str = HttpContext.Current.Server.HtmlEncode(strInput); } catch { str = "error"; } return str; } public static string HtmlDecode( string strInput) { string str; try { str = HttpContext.Current.Server.HtmlDecode(strInput); } catch { str = "error"; } return str; }
MD5和SHA1加密处理
public static string Encrypt( string strInput, string strType) // 将字符串加密 { string str; try { str = FormsAuthentication.HashPasswordForStoringInConfigFile(strInput,strType); } catch { str = "error"; } return str; } public static string GetMD5( string strInput) // 将字符串用MD5加密 { return Encrypt(strInput,"MD5"); } public static string GetSHA1( string strInput) // 将字符串用SHA1加密 { return Encrypt(strInput,"SHA1"); }
字符串截取
public static string CutString( string strInput, int intlen) // 截取字符串 { ASCIIEncoding ascii = new ASCIIEncoding(); int intLength = 0; string strString = ""; byte[] s = ascii.GetBytes(strInput); for(int i = 0;i < s.Length;i++) { if((int)s[i] == 63) { intLength += 2; } else { intLength += 1; } try { strString += strInput.Substring(i,1); } catch { break; } if(intLength > intlen) { break; } } //如果截过则加上半个省略号 byte[] mybyte=System.Text.Encoding.Default.GetBytes(strInput); if(mybyte.Length > intlen) { strString += "…"; } return strString; }
简单的几个字符串处理函数,可以直接调用,比较方便。
批评建议请发Email给我:kenblove#gmail.com
转载于:https://www.cnblogs.com/KenBlove/articles/464638.html