public class Input { /// <summary> /// 檢測是否整數型數據 /// </summary> /// <param name="Num">待檢查數據</param> /// <returns></returns> public static bool IsInteger(string Input) { if (Input == null) { return false; } else { return IsInteger(Input, true); } } /// <summary> /// 是否全是正整數 /// </summary> /// <param name="Input"></param> /// <returns></returns> public static bool IsInteger(string Input, bool Plus) { if (Input == null) { return false; } else { string pattern = "^-?[0-9]+$"; if (Plus) pattern = "^[0-9]+$"; if (Regex.Match(Input, pattern, RegexOptions.Compiled).Success) { return true; } else { return false; } } } /// <summary> /// 判斷輸入是否為日期類(lèi)型 /// </summary> /// <param name="s">待檢查數據</param> /// <returns></returns> public static bool IsDate(string s) { try { DateTime d = DateTime.Parse(s); return true; } catch { return false; } } /// <summary> /// 過(guò)濾字符串中的html代碼 /// </summary> /// <param name="Str"></param> /// <returns>返回過(guò)濾之后的字符串</returns> public static string LostHTML(string Str) { string Re_Str = ""; if (Str != null) { if (Str != string.Empty) { string Pattern = "<\/*[^<>]*>"; Re_Str = Regex.Replace(Str, Pattern, ""); } } return (Re_Str.Replace("\r\n", "")).Replace("\r", ""); } public static string LostPage(string Str) { string Re_Str = ""; if (Str != null) { if (Str != string.Empty) { string Pattern = "\[NT:PAGE\/*[^<>]*\$\]"; Re_Str = Regex.Replace(Str, Pattern, ""); } } return Re_Str; } public static string LostVoteStr(string Str) { string Re_Str = ""; if (Str != null) { if (Str != string.Empty) { string Pattern = "\[NT:unLoop\/*[^<>]*\[\/NT:unLoop\]"; Re_Str = Regex.Replace(Str, Pattern, ""); } } return Re_Str; } /// <summary> /// 根據新聞標題的屬性設置返回設置后的標題 /// </summary> /// <param name="Title">標題</param> /// <param name="TitleColor">標題顏色</param> /// <param name="IsB">是否粗體</param> /// <param name="IsI">是否斜體</param> /// <param name="TitleNum">返回標題字數</param> /// <returns>返回設置后的標題</returns> public static string GetColorTitleSubStr(string Title, string TitleColor, int IsB, int IsI, int TitleNum) { string Return_title = ""; string FormatTitle = LostHTML(Title); if (FormatTitle != null && FormatTitle != string.Empty) { FormatTitle = GetSubString(FormatTitle, TitleNum); if (IsB == 1) { FormatTitle = "<b>" + FormatTitle + "</b>"; } if (IsI == 1) { FormatTitle = "<i>" + FormatTitle + "</i>"; } if (TitleColor != null && TitleColor != string.Empty) { FormatTitle = "<font style="color:" + TitleColor + ";">" + FormatTitle + "</font>"; } Return_title = FormatTitle; } return Return_title; } /// <summary> /// 截取字符串函數 /// </summary> /// <param name="Str">所要截取的字符串</param> /// <param name="Num">截取字符串的長(cháng)度</param> /// <returns></returns> public static string GetSubString(string Str, int Num) { if (Str == null || Str == "") return ""; string outstr = ""; int n = 0; foreach (char ch in Str) { n += System.Text.Encoding.Default.GetByteCount(ch.ToString()); if (n > Num) break; else outstr += ch; } return outstr; } /// <summary> /// 截取字符串函數 /// </summary> /// <param name="Str">所要截取的字符串</param> /// <param name="Num">截取字符串的長(cháng)度</param> /// <param name="Num">截取字符串后省略部分的字符串</param> /// <returns></returns> public static string GetSubString(string Str, int Num, string LastStr) { if (string.IsNullOrEmpty(Str)) return ""; return (Str.Length > Num) ? Str.Substring(0, Num) + LastStr : Str; } /// <summary> /// 驗證字符串是否是圖片路徑 /// </summary> /// <param name="Input">待檢測的字符串</param> /// <returns>返回true 或 false</returns> public static bool IsImgString(string Input) { return IsImgString(Input, "/{@dirfile}/"); } public static bool IsImgString(string Input, string checkStr) { bool re_Val = false; if (Input != string.Empty) { string s_input = Input.ToLower(); if (s_input.IndexOf(checkStr.ToLower()) != -1 && s_input.IndexOf(".") != -1) { string Ex_Name = s_input.Substring(s_input.LastIndexOf(".") + 1).ToString().ToLower(); if (Ex_Name == "jpg" || Ex_Name == "gif" || Ex_Name == "bmp" || Ex_Name == "png") { re_Val = true; } } } return re_Val; } /// <summary> /// 將字符轉化為HTML編碼 /// </summary> /// <param name="str">待處理的字符串</param> /// <returns></returns> public static string HtmlEncode(string Input) { return HttpContext.Current.Server.HtmlEncode(Input); } /// <summary> /// /// </summary> /// <param name="Input"></param> /// <returns></returns> public static string HtmlDecode(string Input) { return HttpContext.Current.Server.HtmlDecode(Input); } /// <summary> /// URL地址編碼 /// </summary> /// <param name="Input"></param> /// <returns></returns> public static string URLEncode(string Input) { return HttpContext.Current.Server.UrlEncode(Input); } /// <summary> /// URL地址解碼 /// </summary> /// <param name="Input"></param> /// <returns></returns> public static string URLDecode(string Input) { return HttpContext.Current.Server.UrlDecode(Input); } /// <summary> /// 過(guò)濾字符 /// </summary> /// <param name="Input"></param> /// <returns></returns> public static string Filter(string sInput) { if (sInput == null || sInput == "") return null; string sInput1 = sInput.ToLower(); string output = sInput; string pattern = @"*|and|exec|insert|select|delete|update|count|master|truncate|declare|char(|mid(|chr(|'"; if (Regex.Match(sInput1, Regex.Escape(pattern), RegexOptions.Compiled | RegexOptions.IgnoreCase).Success) { throw new Exception("字符串中含有非法字符!"); } else { output = output.Replace("'", "''"); } return output; } /// <summary> /// 過(guò)濾特殊字符/前臺會(huì )員 /// </summary> /// <param name="Input"></param> /// <returns></returns> public static string Htmls(string Input) { if (Input != string.Empty && Input != null) { string ihtml = Input.ToLower(); ihtml = ihtml.Replace("<script", "<script"); ihtml = ihtml.Replace("script>", "script>"); ihtml = ihtml.Replace("<%", "<%"); ihtml = ihtml.Replace("%>", "%>"); ihtml = ihtml.Replace("<$", "<$"); ihtml = ihtml.Replace("$>", "$>"); return ihtml; } else { return string.Empty; } } /// <summary> /// 字符串字符處理 /// </summary> /// <param name="chr">等待處理的字符串</param> /// <returns>處理后的字符串</returns> /// //把HTML代碼轉換成TXT格式 public static String ToTxt(String Input) { StringBuilder sb = new StringBuilder(Input); sb.Replace(" ", " "); sb.Replace("<br>", " "); sb.Replace("<br>", " "); sb.Replace("<br />", " "); sb.Replace("<br />", " "); sb.Replace("<", "<"); sb.Replace(">", ">"); sb.Replace("&", "&"); return sb.ToString(); } /// <summary> /// 字符串字符處理 /// </summary> /// <param name="chr">等待處理的字符串</param> /// <returns>處理后的字符串</returns> /// //把HTML代碼轉換成TXT格式 public static String ToshowTxt(String Input) { StringBuilder sb = new StringBuilder(Input); sb.Replace("<", "<"); sb.Replace(">", ">"); return sb.ToString(); } /// <summary> /// 把字符轉化為文本格式 /// </summary> /// <param name="Input"></param> /// <returns></returns> public static string ForTXT(string Input) { StringBuilder sb = new StringBuilder(Input); sb.Replace("<font", " "); sb.Replace("<span", " "); sb.Replace("<style", " "); sb.Replace("<div", " "); sb.Replace("<p", ""); sb.Replace("</p>", ""); sb.Replace("<label", " "); sb.Replace(" ", " "); sb.Replace("<br>", ""); sb.Replace("<br />", ""); sb.Replace("<br />", ""); sb.Replace("<", ""); sb.Replace(">", ""); sb.Replace("&", ""); sb.Replace("<", ""); sb.Replace(">", ""); return sb.ToString(); } /// <summary> /// 字符串字符處理 /// </summary> /// <param name="chr">等待處理的字符串</param> /// <returns>處理后的字符串</returns> /// //把TXT代碼轉換成HTML格式 public static String ToHtml(string Input) { StringBuilder sb = new StringBuilder(Input); sb.Replace("&", "&"); sb.Replace("<", "<"); sb.Replace(">", ">"); sb.Replace(" ", "<br />"); sb.Replace(" ", "<br />"); sb.Replace(" ", " "); //sb.Replace(" ", " "); return sb.ToString(); } public static String ToHtmlWithOutImg(string Input) { StringBuilder sb = new StringBuilder(Input); if (Input.IndexOf("/editor/editor/images/smiley/") <= 0) { sb.Replace("<", "<"); sb.Replace(">", ">"); } sb.Replace("&", "&"); sb.Replace(" ", "<br />"); sb.Replace(" ", "<br />"); sb.Replace(" ", " "); //sb.Replace(" ", " "); return sb.ToString(); } /// <summary> /// MD5加密字符串處理 /// </summary> /// <param name="Half">加密是16位還是32位;如果為true為16位</param> /// <param name="Input">待加密碼字符串</param> /// <returns></returns> public static string MD5(string Input, bool Half) { string output = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Input, "MD5").ToLower(); if (Half)//16位MD5加密(取32位加密的9~25字符) output = output.Substring(8, 16); return output; } public static string MD5(string Input) { return MD5(Input, true); } /// <summary> /// 字符串加密 進(jìn)行位移操作 /// </summary> /// <param name="str">待加密數據</param> /// <returns>加密后的數據</returns> public static string EncryptString(string Input) { string _temp = ""; int _inttemp; char[] _chartemp = Input.ToCharArray(); for (int i = 0; i < _chartemp.Length; i++) { _inttemp = _chartemp[i] + 1; _chartemp[i] = (char)_inttemp; _temp += _chartemp[i]; } return _temp; } /// <summary> /// 字符串解密 /// </summary> /// <param name="str">待解密數據</param> /// <returns>解密成功后的數據</returns> public static string NcyString(string Input) { string _temp = ""; int _inttemp; char[] _chartemp = Input.ToCharArray(); for (int i = 0; i < _chartemp.Length; i++) { _inttemp = _chartemp[i] - 1; _chartemp[i] = (char)_inttemp; _temp += _chartemp[i]; } return _temp; } /// <summary> /// 檢測含中文字符串實(shí)際長(cháng)度 /// </summary> /// <param name="str">待檢測的字符串</param> /// <returns>返回正整數</returns> public static int NumChar(string Input) { ASCIIEncoding n = new ASCIIEncoding(); byte[] b = n.GetBytes(Input); int l = 0; for (int i = 0; i <= b.Length - 1; i++) { if (b[i] == 63)//判斷是否為漢字或全腳符號 { l++; } l++; } return l; } /// <summary> /// 檢測是否合法日期 /// </summary> /// <param name="str">待檢測的字符串</param> /// <returns></returns> public static bool ChkDate(string Input) { try { DateTime t1 = DateTime.Parse(Input); return true; } catch { return false; } } /// <summary> /// 轉換日期時(shí)間函數 /// </summary> /// <returns></returns> public static string ReDateTime() { return System.DateTime.Now.ToString("yyyyMMdd"); } /// <summary> /// 去除字符串最后一個(gè)','號 /// </summary> /// <param name="chr">:要做處理的字符串</param> /// <returns>返回已處理的字符串</returns> public static string CutComma(string Input) { return CutComma(Input, ","); } public static string CutComma(string Input, string indexStr) { if (Input.IndexOf(indexStr) >= 0) return Input.Remove(Input.LastIndexOf(indexStr)); else return Input; } /// <summary> /// 去掉首尾P /// </summary> /// <param name="Input"></param> /// <returns></returns> public static string RemovePor(string Input) { if (Input != string.Empty && Input != null) { string TMPStr = Input; if (Input.ToLower().Substring(0, 3) == "<p>") { TMPStr = TMPStr.Substring(3); } if (TMPStr.Substring(TMPStr.Length - 4) == "</p>") { TMPStr = TMPStr.Remove(TMPStr.ToLower().LastIndexOf("</p>")); } return TMPStr; } else { return string.Empty; } } /// <summary> /// 判斷參數是否合法 /// </summary> /// <param name="ID">要判斷的參數</param> /// <returns>返回已處理的字符串</returns> public static string checkID(string ID) { if (ID == null && ID == string.Empty) throw new Exception("參數傳遞錯誤!<li>參數不能為空</li>"); return ID; } /// <summary> /// 去除編號字符串中的'-1' /// </summary> /// <param name="id"></param> /// <returns>如果為空則返回'IsNull'</returns> public static string Losestr(string id) { if (id == null || id == "" || id == string.Empty) return "IsNull"; id = id.Replace("'-1',", ""); if (id == null || id == "" || id == string.Empty) return "IsNull"; else return id; } public static string FilterHTML(string html) { if (html == null) return ""; System.Text.RegularExpressions.Regex regex1 = new System.Text.RegularExpressions.Regex(@"<script[sS]+</script *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase); System.Text.RegularExpressions.Regex regex2 = new System.Text.RegularExpressions.Regex(@" href *= *[sS]*script *:", System.Text.RegularExpressions.RegexOptions.IgnoreCase); System.Text.RegularExpressions.Regex regex3 = new System.Text.RegularExpressions.Regex(@" on[sS]*=", System.Text.RegularExpressions.RegexOptions.IgnoreCase); System.Text.RegularExpressions.Regex regex4 = new System.Text.RegularExpressions.Regex(@"<iframe[sS]+</iframe *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase); System.Text.RegularExpressions.Regex regex5 = new System.Text.RegularExpressions.Regex(@"<frameset[sS]+</frameset *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase); System.Text.RegularExpressions.Regex regex6 = new System.Text.RegularExpressions.Regex(@"<img[^>]+>", System.Text.RegularExpressions.RegexOptions.IgnoreCase); System.Text.RegularExpressions.Regex regex7 = new System.Text.RegularExpressions.Regex(@"</p>", System.Text.RegularExpressions.RegexOptions.IgnoreCase); System.Text.RegularExpressions.Regex regex8 = new System.Text.RegularExpressions.Regex(@"<p>", System.Text.RegularExpressions.RegexOptions.IgnoreCase); System.Text.RegularExpressions.Regex regex9 = new System.Text.RegularExpressions.Regex(@"<[^>]*>", System.Text.RegularExpressions.RegexOptions.IgnoreCase); html = regex1.Replace(html, ""); //過(guò)濾<script></script>標記 html = regex2.Replace(html, ""); //過(guò)濾href=javascript: (<A>) 屬性 html = regex3.Replace(html, " _disibledevent="); //過(guò)濾其它控件的on...事件 html = regex4.Replace(html, ""); //過(guò)濾iframe html = regex5.Replace(html, ""); //過(guò)濾frameset html = regex6.Replace(html, ""); //過(guò)濾frameset html = regex7.Replace(html, ""); //過(guò)濾frameset html = regex8.Replace(html, ""); //過(guò)濾frameset html = regex9.Replace(html, ""); html = html.Replace(" ", ""); html = html.Replace("</strong>", ""); html = html.Replace("<strong>", ""); return html; } #region 加密 private static byte[] Keys = { 0x41, 0x72, 0x65, 0x79, 0x6F, 0x75, 0x6D, 0x79, 0x53, 0x6E, 0x6F, 0x77, 0x6D, 0x61, 0x6E, 0x3F }; public static string AESEncode(string encryptString, string encryptKey) { encryptKey = Utils.GetSubString(encryptKey, 32, ""); encryptKey = encryptKey.PadRight(32, ' '); RijndaelManaged rijndaelProvider = new RijndaelManaged(); rijndaelProvider.Key = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 32)); rijndaelProvider.IV = Keys; ICryptoTransform rijndaelEncrypt = rijndaelProvider.CreateEncryptor(); byte[] inputData = Encoding.UTF8.GetBytes(encryptString); byte[] encryptedData = rijndaelEncrypt.TransformFinalBlock(inputData, 0, inputData.Length); return Convert.ToBase64String(encryptedData); } public static string AESDecode(string decryptString, string decryptKey) { try { decryptKey = Utils.GetSubString(decryptKey, 32, ""); decryptKey = decryptKey.PadRight(32, ' '); RijndaelManaged rijndaelProvider = new RijndaelManaged(); rijndaelProvider.Key = Encoding.UTF8.GetBytes(decryptKey); rijndaelProvider.IV = Keys; ICryptoTransform rijndaelDecrypt = rijndaelProvider.CreateDecryptor(); byte[] inputData = Convert.FromBase64String(decryptString); byte[] decryptedData = rijndaelDecrypt.TransformFinalBlock(inputData, 0, inputData.Length); return Encoding.UTF8.GetString(decryptedData); } catch { return ""; } } /// <summary> /// DES加密字符串 /// </summary> /// <param name="encryptString">待加密的字符串</param> /// <param name="encryptKey">加密密鑰,要求為8位</param> /// <returns>加密成功返回加密后的字符串,失敗返回源串</returns> public static string DESEncode(string encryptString, string encryptKey) { encryptKey = Utils.GetSubString(encryptKey, 8, ""); encryptKey = encryptKey.PadRight(8, ' '); byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Keys; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray()); } /// <summary> /// DES解密字符串 /// </summary> /// <param name="decryptString">待解密的字符串</param> /// <param name="decryptKey">解密密鑰,要求為8位,和加密密鑰相同</param> /// <returns>解密成功返回解密后的字符串,失敗返源串</returns> public static string DESDecode(string decryptString, string decryptKey) { try { decryptKey = Utils.GetSubString(decryptKey, 8, ""); decryptKey = decryptKey.PadRight(8, ' '); byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey); byte[] rgbIV = Keys; byte[] inputByteArray = Convert.FromBase64String(decryptString); DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Encoding.UTF8.GetString(mStream.ToArray()); } catch { return ""; } } #endregion } |
聯(lián)系客服