StringHelper字符串處理幫助類庫大全
SHA1 加密
SHA1加密簽名比對
MD5加密
獲取時間戳
時間戳轉(zhuǎn)為C#格式時間
計算出請求有效時間 (秒)單位
檢測密碼是否符合要求
格式化距今時間
生成手機(jī)短信驗證碼
檢查字符串中是否包含非法字符
截取長度并轉(zhuǎn)換為HTML
刪除所有的html標(biāo)記
取得所有鏈接URL
獲取所有連接文本
StringHelper幫助類庫源碼
/// <summary> /// 開發(fā)團(tuán)隊:JsonsTeam /// 官方主頁:http://www.hnxxbl.cn /// </summary> using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Globalization; using System.Security.Cryptography; using System.Web; namespace JsonsUtil.Helper { public class StringHelper { /// <summary> /// SHA1 加密 /// </summary> /// <param name="Source_String">加密串</param> /// <returns></returns> public static string SHA1(string Source_String) { byte[] StrRes = Encoding.Default.GetBytes(Source_String); HashAlgorithm iSHA = new SHA1CryptoServiceProvider(); StrRes = iSHA.ComputeHash(StrRes); StringBuilder EnText = new StringBuilder(); foreach (byte iByte in StrRes) { EnText.AppendFormat("{0:x2}", iByte); } return EnText.ToString(); } /// <summary> /// SHA1加密簽名比對 /// </summary> /// <param name="signature">加密簽名</param> /// <param name="token">由AppId和AppSecret得到的憑據(jù)</param> /// <returns></returns> public static bool CheckSignature(string signature, string token) { string strResult = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(token, "SHA1"); return signature.Equals(strResult, StringComparison.InvariantCultureIgnoreCase); } /// <summary> /// MD5加密 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string MD5string(string str) { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5"); } /// <summary> /// MD5加密 /// </summary> /// <param name="str"></param> /// <param name="isupper"></param> /// <returns></returns> public static string MD5string(string str, bool isupper) { string md5string = MD5string(str); if (isupper) return md5string.ToUpper(); else return md5string.ToLower(); } /// <summary> /// 獲取時間戳 /// </summary> /// <returns></returns> public static string GetTimeStamp() { TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); return Convert.ToInt64(ts.TotalSeconds).ToString(); } /// <summary> /// 時間戳轉(zhuǎn)為C#格式時間 /// </summary> /// <param name="timeStamp">Unix時間戳格式</param> /// <returns>C#格式時間</returns> public static DateTime GetStampDateTime(long timeStamp) { DateTime time = new DateTime(); try { DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); long lTime = long.Parse(timeStamp "0000000"); TimeSpan toNow = new TimeSpan(lTime); time = dtStart.Add(toNow); } catch { time = DateTime.Now.AddDays(-30); } return time; } ///<summary> /// 計算出請求有效時間 (秒)單位 /// </summary> /// <param name="dateBegin">開始時間</param> /// <param name="dateEnd">結(jié)束時間</param> /// <returns>返回(秒)單位,比如: 0.00239秒</returns> public static double GetcDateDiff(DateTime dateBegin, DateTime dateEnd) { double getdiff = 0; try { TimeSpan ts1 = new TimeSpan(dateBegin.Ticks); TimeSpan ts2 = new TimeSpan(dateEnd.Ticks); TimeSpan ts3 = ts1.Subtract(ts2).Duration(); getdiff = ts3.TotalSeconds; } catch { getdiff = 4004; } return getdiff; } /// <summary> /// 檢測密碼是否符合要求(不能為純數(shù)字或純字母,長度不小于6) /// </summary> /// <param name="password"></param> /// <returns></returns> public static bool PasswordStrengthIsHigh(string password) { if (password.Length < 6) { return false; } Regex reg = new Regex(@"^(([a-zA-Z]*)|(\d*))$"); return !reg.IsMatch(password); } /// <summary> /// 格式化距今時間 /// </summary> /// <param name="dt">時間</param> /// <returns>string</returns> public static string GetElapsedTime(DateTime dt) { TimeSpan sp = DateTime.Now - dt; if (sp.TotalHours <= 1) { if (sp.TotalMinutes <= 1) { return "1分鐘內(nèi)"; } else { return (int)Math.Ceiling(sp.TotalMinutes) "分鐘內(nèi)"; } } else if (sp.TotalDays <= 2) { return (int)Math.Ceiling(sp.TotalHours) "小時內(nèi)"; } else if (sp.TotalDays < 3) { return "三天內(nèi)"; } else if (sp.TotalDays < 4) { return "四天內(nèi)"; } else if (sp.TotalDays < 5) { return "五天內(nèi)"; } else if (sp.TotalDays < 6) { return "六天內(nèi)"; } else if (sp.TotalDays < 7) { return "一周內(nèi)"; } if (dt.Year == DateTime.Now.Year) { return dt.ToString("MM-dd"); } else { return dt.ToString("yyyy-MM-dd"); } } /// <summary> /// 生成手機(jī)短信驗證碼 /// </summary> /// <returns></returns> public static string GetRandomNumberString() { Random theRandomNumber = new Random(); return theRandomNumber.Next(100000, 999999).ToString(); } #region 常規(guī)字符串操作 // 檢查字符串是否為空 public static bool IsEmpty(string str) { if (str == null || str == "") return true; else return false; } //檢查字符串中是否包含非法字符 public static bool CheckValidity(string s) { string str = s; if (str.IndexOf("'") > 0 || str.IndexOf("&") > 0 || str.IndexOf("%") > 0 || str.IndexOf(" ") > 0 || str.IndexOf("\"") > 0 || str.IndexOf("=") > 0 || str.IndexOf("!") > 0) { return false; } else { return true; } } /// <summary> /// 把價格精確至小數(shù)點(diǎn)兩位 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string TransformPrice(double dPrice) { double d = dPrice; NumberFormatInfo myNfi = new NumberFormatInfo(); myNfi.NumberNegativePattern = 2; string s = d.ToString("N", myNfi); return s; } public static string TransToStr(float f, int iNum) { float fl = f; NumberFormatInfo myNfi = new NumberFormatInfo(); myNfi.NumberNegativePattern = iNum; string s = f.ToString("N", myNfi); return s; } /// <summary> /// 檢測含有中文字符串的實際長度 /// </summary> /// <param name="str">字符串</param> public static int GetLength(string str) { System.Text.ASCIIEncoding n = new System.Text.ASCIIEncoding(); byte[] b = n.GetBytes(str); int l = 0; // l 為字符串之實際長度 for (int i = 0; i <= b.Length - 1; i ) { if (b[i] == 63) //判斷是否為漢字或全腳符號 { l ; } l ; } return l; } //截取長度,num是英文字母的總數(shù),一個中文算兩個英文 public static string GetLetter(string str, int iNum, bool bAddDot) { if (str == null || iNum <= 0) return ""; if (str.Length < iNum && str.Length * 2 < iNum) { return str; } string sContent = str; int iTmp = iNum; char[] arrC; if (sContent.Length >= iTmp) //防止因為中文的原因使ToCharArray溢出 { arrC = str.ToCharArray(0, iTmp); } else { arrC = str.ToCharArray(0, sContent.Length); } int i = 0; int iLength = 0; foreach (char ch in arrC) { iLength ; int k = (int)ch; if (k > 127 || k < 0) { i = 2; } else { i ; } if (i > iTmp) { iLength--; break; } else if (i == iTmp) { break; } } if (iLength < str.Length && bAddDot) sContent = sContent.Substring(0, iLength - 3) "..."; else sContent = sContent.Substring(0, iLength); return sContent; } public static string GetDateString(DateTime dt) { return dt.Year.ToString() dt.Month.ToString().PadLeft(2, '0') dt.Day.ToString().PadLeft(2, '0'); } //根據(jù)指定字符,截取相應(yīng)字符串 public static string GetStrByLast(string sOrg, string sLast) { int iLast = sOrg.LastIndexOf(sLast); if (iLast > 0) return sOrg.Substring(iLast 1); else return sOrg; } public static string GetPreStrByLast(string sOrg, string sLast) { int iLast = sOrg.LastIndexOf(sLast); if (iLast > 0) return sOrg.Substring(0, iLast); else return sOrg; } public static string RemoveEndWith(string sOrg, string sEnd) { if (sOrg.EndsWith(sEnd)) sOrg = sOrg.Remove(sOrg.IndexOf(sEnd), sEnd.Length); return sOrg; } #endregion 常規(guī)字符串操作 #region HTML相關(guān)操作 public static string ClearTag(string sHtml) { if (sHtml == "") return ""; string sTemp = sHtml; Regex re = new Regex(@"(<[^>\s]*\b(\w) \b[^>]*>)|(<>)|( )|(>)|(<)|(&)|\r|\n|\t", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace); return re.Replace(sHtml, ""); } public static string ClearTag(string sHtml, string sRegex) { string sTemp = sHtml; Regex re = new Regex(sRegex, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace); return re.Replace(sHtml, ""); } public static string ConvertToJS(string sHtml) { StringBuilder sText = new StringBuilder(); Regex re; re = new Regex(@"\r\n", RegexOptions.IgnoreCase); string[] strArray = re.Split(sHtml); foreach (string strLine in strArray) { sText.Append("document.writeln(\"" strLine.Replace("\"", "\\\"") "\");\r\n"); } return sText.ToString(); } public static string ReplaceNbsp(string str) { string sContent = str; if (sContent.Length > 0) { sContent = sContent.Replace(" ", ""); sContent = sContent.Replace(" ", ""); sContent = " " sContent; } return sContent; } public static string StringToHtml(string str) { string sContent = str; if (sContent.Length > 0) { char csCr = (char)13; sContent = sContent.Replace(csCr.ToString(), "<br>"); sContent = sContent.Replace(" ", " "); sContent = sContent.Replace(" ", " "); } return sContent; } //截取長度并轉(zhuǎn)換為HTML public static string AcquireAssignString(string str, int num) { string sContent = str; sContent = GetLetter(sContent, num, false); sContent = StringToHtml(sContent); return sContent; } //此方法與AcquireAssignString的功能已經(jīng)一樣,為了不報錯,故保留此方法 public static string TranslateToHtmlString(string str, int num) { string sContent = str; sContent = GetLetter(sContent, num, false); sContent = StringToHtml(sContent); return sContent; } public static string AddBlankAtForefront(string str) { string sContent = str; return sContent; } /// <summary> /// 刪除所有的html標(biāo)記 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string DelHtmlString(string str) { string[] Regexs = { @"<script[^>]*?>.*?</script>", @"<(\/\s*)?!?((\w :)?\w )(\w (\s*=?\s*(([""'])(\\[""'tbnr]|[^\7])*?\7|\w )|.{0})|\s)*?(\/\s*)?>", @"([\r\n])[\s] ", @"&(quot|#34);", @"&(amp|#38);", @"&(lt|#60);", @"&(gt|#62);", @"&(nbsp|#160);", @"&(iexcl|#161);", @"&(cent|#162);", @"&(pound|#163);", @"&(copy|#169);", @"&#(\d );", @"-->", @"<!--.*\n" }; string[] Replaces = { "", "", "", "\"", "&", "<", ">", " ", "\xa1", //chr(161), "\xa2", //chr(162), "\xa3", //chr(163), "\xa9", //chr(169), "", "\r\n", "" }; string s = str; for (int i = 0; i < Regexs.Length; i ) { s = new Regex(Regexs[i], RegexOptions.Multiline | RegexOptions.IgnoreCase).Replace(s, Replaces[i]); } s.Replace("<", ""); s.Replace(">", ""); s.Replace("\r\n", ""); return s; } /// <summary> /// 刪除字符串中的特定標(biāo)記 /// </summary> /// <param name="str"></param> /// <param name="tag"></param> /// <param name="isContent">是否清除內(nèi)容 </param> /// <returns></returns> public static string DelTag(string str, string tag, bool isContent) { if (tag == null || tag == " ") { return str; } if (isContent) //要求清除內(nèi)容 { return Regex.Replace(str, string.Format("<({0})[^>]*>([\\s\\S]*?)<\\/\\1>", tag), "", RegexOptions.IgnoreCase); } return Regex.Replace(str, string.Format(@"(<{0}[^>]*(>)?)|(</{0}[^>] *>)|", tag), "", RegexOptions.IgnoreCase); } /// <summary> /// 刪除字符串中的一組標(biāo)記 /// </summary> /// <param name="str"></param> /// <param name="tagA"></param> /// <param name="isContent">是否清除內(nèi)容 </param> /// <returns></returns> public static string DelTagArray(string str, string tagA, bool isContent) { string[] tagAa = tagA.Split(','); foreach (string sr1 in tagAa) //遍歷所有標(biāo)記,刪除 { str = DelTag(str, sr1, isContent); } return str; } #endregion HTML相關(guān)操作 #region 其他字符串操作 /// <summary> /// 格式化為版本號字符串 /// </summary> /// <param name="sVersion"></param> /// <returns></returns> public static string SetVersionFormat(string sVersion) { if (sVersion == null || sVersion == "") return ""; int n = 0, k = 0; string stmVersion = ""; while (n < 4 && k > -1) { k = sVersion.IndexOf(".", k 1); n ; } if (k > 0) { stmVersion = sVersion.Substring(0, k); } else { stmVersion = sVersion; } return stmVersion; } /// <summary> /// 格式化字符串為 SQL 語句字段 /// </summary> /// <param name="fldList"></param> /// <returns></returns> public static string GetSQLFildList(string fldList) { if (fldList == null) return "*"; if (fldList.Trim() == "") return "*"; if (fldList.Trim() == "*") return "*"; //先去掉空格,[]符號 string strTemp = fldList; strTemp = strTemp.Replace(" ", ""); strTemp = strTemp.Replace("[", "").Replace("]", ""); //為防止使用保留字,給所有字段加上[] strTemp = "[" strTemp "]"; strTemp = strTemp.Replace(',', ','); strTemp = strTemp.Replace(",", "],["); return strTemp; } public static string GetTimeDelay(DateTime dtStar, DateTime dtEnd) { long lTicks = (dtEnd.Ticks - dtStar.Ticks) / 10000000; string sTemp = (lTicks / 3600).ToString().PadLeft(2, '0') ":"; sTemp = ((lTicks % 3600) / 60).ToString().PadLeft(2, '0') ":"; sTemp = ((lTicks % 3600) % 60).ToString().PadLeft(2, '0'); return sTemp; } /// <summary> /// 在前面補(bǔ)0 /// </summary> /// <returns></returns> public static string AddZero(int sheep, int length) { return AddZero(sheep.ToString(), length); } /// <summary> /// 在前面補(bǔ)0 /// </summary> /// <returns></returns> public static string AddZero(string sheep, int length) { StringBuilder goat = new StringBuilder(sheep); for (int i = goat.Length; i < length; i ) { goat.Insert(0, "0"); } return goat.ToString(); } /// <summary> /// 簡介:獲得唯一的字符串 /// </summary> /// <returns></returns> public static string GetUniqueString() { Random rand = new Random(); return ((int)(rand.NextDouble() * 10000)).ToString() DateTime.Now.Ticks.ToString(); } //獲得干凈,無非法字符的字符串 public static string GetCleanJsString(string str) { str = str.Replace("\"", "“"); str = str.Replace("'", "”"); str = str.Replace("\\", "\\\\"); Regex re = new Regex(@"\r|\n|\t", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace); str = re.Replace(str, " "); return str; } //獲得干凈,無非法字符的字符串 public static string GetCleanJsString2(string str) { str = str.Replace("\"", "\\\""); Regex re = new Regex(@"\r|\n|\t", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace); str = re.Replace(str, " "); return str; } #endregion 其他字符串操作 /// <summary> /// 取得所有鏈接URL /// </summary> /// <param name="html"></param> /// <returns></returns> public static string GetAllURL(string html) { StringBuilder sb = new StringBuilder(); Match m = Regex.Match(html.ToLower(), "<a href=(.*?)>.*?</a>"); while (m.Success) { sb.AppendLine(m.Result("$1")); m.NextMatch(); } return sb.ToString(); } /// <summary> /// 獲取所有連接文本 /// </summary> /// <param name="html"></param> /// <returns></returns> public static string GetAllLinkText(string html) { StringBuilder sb = new StringBuilder(); Match m = Regex.Match(html.ToLower(), "<a href=.*?>(1,100})</a>"); while (m.Success) { sb.AppendLine(m.Result("$1")); m.NextMatch(); } return sb.ToString(); } } }
原文鏈接:StringHelper字符串處理幫助類庫大全<一>