/// <summary> /// 普通幫助類 /// </summary> public class CommonHelper { //星期陣列 private static string[] _weekdays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; //空格、回車、換行符、製表符正規表示式 private static Regex _tbbrRegex = new Regex(@"s*| | | ", RegexOptions.IgnoreCase); #region 時間操作 /// <summary> /// 獲得當前時間的""yyyy-MM-dd HH:mm:ss:fffffff""格式字串 /// </summary> public static string GetDateTimeMS() { return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fffffff"); } /// <summary> /// 獲得當前時間的""yyyy年MM月dd日 HH:mm:ss""格式字串 /// </summary> public static string GetDateTimeU() { return string.Format("{0:U}", DateTime.Now); } /// <summary> /// 獲得當前時間的""yyyy-MM-dd HH:mm:ss""格式字串 /// </summary> public static string GetDateTime() { return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } /// <summary> /// 獲得當前日期 /// </summary> public static string GetDate() { return DateTime.Now.ToString("yyyy-MM-dd"); } /// <summary> /// 獲得中文當前日期 /// </summary> public static string GetChineseDate() { return DateTime.Now.ToString("yyyy月MM日dd"); } /// <summary> /// 獲得當前時間(不含日期部分) /// </summary> public static string GetTime() { return DateTime.Now.ToString("HH:mm:ss"); } /// <summary> /// 獲得當前小時 /// </summary> public static string GetHour() { return DateTime.Now.Hour.ToString("00"); } /// <summary> /// 獲得當前天 /// </summary> public static string GetDay() { return DateTime.Now.Day.ToString("00"); } /// <summary> /// 獲得當前月 /// </summary> public static string GetMonth() { return DateTime.Now.Month.ToString("00"); } /// <summary> /// 獲得當前年 /// </summary> public static string GetYear() { return DateTime.Now.Year.ToString(); } /// <summary> /// 獲得當前星期(數字) /// </summary> public static string GetDayOfWeek() { return ((int)DateTime.Now.DayOfWeek).ToString(); } /// <summary> /// 獲得當前星期(漢字) /// </summary> public static string GetWeek() { return _weekdays[(int)DateTime.Now.DayOfWeek]; } #endregion #region 陣列操作 /// <summary> /// 獲得字串在字串陣列中的位置 /// </summary> public static int GetIndexInArray(string s, string[] array, bool ignoreCase) { if (string.IsNullOrEmpty(s) || array == null || array.Length == 0) return -1; int index = 0; string temp = null; if (ignoreCase) s = s.ToLower(); foreach (string item in array) { if (ignoreCase) temp = item.ToLower(); else temp = item; if (s == temp) return index; else index++; } return -1; } /// <summary> /// 獲得字串在字串陣列中的位置 /// </summary> public static int GetIndexInArray(string s, string[] array) { return GetIndexInArray(s, array, false); } /// <summary> /// 判斷字串是否在字串陣列中 /// </summary> public static bool IsInArray(string s, string[] array, bool ignoreCase) { return GetIndexInArray(s, array, ignoreCase) > -1; } /// <summary> /// 判斷字串是否在字串陣列中 /// </summary> public static bool IsInArray(string s, string[] array) { return IsInArray(s, array, false); } /// <summary> /// 判斷字串是否在字串中 /// </summary> public static bool IsInArray(string s, string array, string splitStr, bool ignoreCase) { return IsInArray(s, StringHelper.SplitString(array, splitStr), ignoreCase); } /// <summary> /// 判斷字串是否在字串中 /// </summary> public static bool IsInArray(string s, string array, string splitStr) { return IsInArray(s, StringHelper.SplitString(array, splitStr), false); } /// <summary> /// 判斷字串是否在字串中 /// </summary> public static bool IsInArray(string s, string array) { return IsInArray(s, StringHelper.SplitString(array, ","), false); } /// <summary> /// 將物件陣列拼接成字串 /// </summary> public static string ObjectArrayToString(object[] array, string splitStr) { if (array == null || array.Length == 0) return ""; StringBuilder result = new StringBuilder(); for (int i = 0; i < array.Length; i++) result.AppendFormat("{0}{1}", array[i], splitStr); return result.Remove(result.Length - splitStr.Length, splitStr.Length).ToString(); } /// <summary> /// 將物件陣列拼接成字串 /// </summary> public static string ObjectArrayToString(object[] array) { return ObjectArrayToString(array, ","); } /// <summary> /// 將字串陣列拼接成字串 /// </summary> public static string StringArrayToString(string[] array, string splitStr) { return ObjectArrayToString(array, splitStr); } /// <summary> /// 將字串陣列拼接成字串 /// </summary> public static string StringArrayToString(string[] array) { return StringArrayToString(array, ","); } /// <summary> /// 將整數陣列拼接成字串 /// </summary> public static string IntArrayToString(int[] array, string splitStr) { if (array == null || array.Length == 0) return ""; StringBuilder result = new StringBuilder(); for (int i = 0; i < array.Length; i++) result.AppendFormat("{0}{1}", array[i], splitStr); return result.Remove(result.Length - splitStr.Length, splitStr.Length).ToString(); } /// <summary> /// 將整數陣列拼接成字串 /// </summary> public static string IntArrayToString(int[] array) { return IntArrayToString(array, ","); } /// <summary> /// 移除陣列中的指定項 /// </summary> /// <param name="array">源陣列</param> /// <param name="removeItem">要移除的項</param> /// <param name="removeBackspace">是否移除空格</param> /// <param name="ignoreCase">是否忽略大小寫</param> /// <returns></returns> public static string[] RemoveArrayItem(string[] array, string removeItem, bool removeBackspace, bool ignoreCase) { if (array != null && array.Length > 0) { StringBuilder arrayStr = new StringBuilder(); if (ignoreCase) removeItem = removeItem.ToLower(); string temp = ""; foreach (string item in array) { if (ignoreCase) temp = item.ToLower(); else temp = item; if (temp != removeItem) arrayStr.AppendFormat("{0}_", removeBackspace ? item.Trim() : item); } return StringHelper.SplitString(arrayStr.Remove(arrayStr.Length - 1, 1).ToString(), "_"); } return array; } /// <summary> /// 移除陣列中的指定項 /// </summary> /// <param name="array">源陣列</param> /// <returns></returns> public static string[] RemoveArrayItem(string[] array) { return RemoveArrayItem(array, "", true, false); } /// <summary> /// 移除字串中的指定項 /// </summary> /// <param name="s">源字串</param> /// <param name="splitStr">分割字串</param> /// <returns></returns> public static string[] RemoveStringItem(string s, string splitStr) { return RemoveArrayItem(StringHelper.SplitString(s, splitStr), "", true, false); } /// <summary> /// 移除字串中的指定項 /// </summary> /// <param name="s">源字串</param> /// <returns></returns> public static string[] RemoveStringItem(string s) { return RemoveArrayItem(StringHelper.SplitString(s), "", true, false); } /// <summary> /// 移除陣列中的重複項 /// </summary> /// <returns></returns> public static int[] RemoveRepeaterItem(int[] array) { if (array == null || array.Length < 2) return array; Array.Sort(array); int length = 1; for (int i = 1; i < array.Length; i++) { if (array[i] != array[i - 1]) length++; } int[] uniqueArray = new int[length]; uniqueArray[0] = array[0]; int j = 1; for (int i = 1; i < array.Length; i++) if (array[i] != array[i - 1]) uniqueArray[j++] = array[i]; return uniqueArray; } /// <summary> /// 移除陣列中的重複項 /// </summary> /// <returns></returns> public static string[] RemoveRepeaterItem(string[] array) { if (array == null || array.Length < 2) return array; Array.Sort(array); int length = 1; for (int i = 1; i < array.Length; i++) { if (array[i] != array[i - 1]) length++; } string[] uniqueArray = new string[length]; uniqueArray[0] = array[0]; int j = 1; for (int i = 1; i < array.Length; i++) if (array[i] != array[i - 1]) uniqueArray[j++] = array[i]; return uniqueArray; } /// <summary> /// 去除字串中的重複元素 /// </summary> /// <returns></returns> public static string GetUniqueString(string s) { return GetUniqueString(s, ","); } /// <summary> /// 去除字串中的重複元素 /// </summary> /// <returns></returns> public static string GetUniqueString(string s, string splitStr) { return ObjectArrayToString(RemoveRepeaterItem(StringHelper.SplitString(s, splitStr)), splitStr); } #endregion /// <summary> /// 去除字串首尾處的空格、回車、換行符、製表符 /// </summary> public static string TBBRTrim(string str) { if (!string.IsNullOrEmpty(str)) return str.Trim().Trim(` `).Trim(` `).Trim(` `); return string.Empty; } /// <summary> /// 去除字串中的空格、回車、換行符、製表符 /// </summary> public static string ClearTBBR(string str) { if (!string.IsNullOrEmpty(str)) return _tbbrRegex.Replace(str, ""); return string.Empty; } /// <summary> /// 刪除字串中的空行 /// </summary> /// <returns></returns> public static string DeleteNullOrSpaceRow(string s) { if (string.IsNullOrEmpty(s)) return ""; string[] tempArray = StringHelper.SplitString(s, " "); StringBuilder result = new StringBuilder(); foreach (string item in tempArray) { if (!string.IsNullOrWhiteSpace(item)) result.AppendFormat("{0} ", item); } if (result.Length > 0) result.Remove(result.Length - 2, 2); return result.ToString(); } /// <summary> /// 獲得指定數量的html空格 /// </summary> /// <returns></returns> public static string GetHtmlBS(int count) { if (count == 1) return " "; else if (count == 2) return " "; else if (count == 3) return " "; else { StringBuilder result = new StringBuilder(); for (int i = 0; i < count; i++) result.Append(" "); return result.ToString(); } } /// <summary> /// 獲得指定數量的htmlSpan元素 /// </summary> /// <returns></returns> public static string GetHtmlSpan(int count) { if (count <= 0) return ""; if (count == 1) return "<span></span>"; else if (count == 2) return "<span></span><span></span>"; else if (count == 3) return "<span></span><span></span><span></span>"; else { StringBuilder result = new StringBuilder(); for (int i = 0; i < count; i++) result.Append("<span></span>"); return result.ToString(); } } /// <summary> ///獲得郵箱提供者 /// </summary> /// <param name="email">郵箱</param> /// <returns></returns> public static string GetEmailProvider(string email) { int index = email.LastIndexOf(`@`); if (index > 0) return email.Substring(index + 1); return string.Empty; } /// <summary> /// 轉義正規表示式 /// </summary> public static string EscapeRegex(string s) { string[] oList = { "\", ".", "+", "*", "?", "{", "}", "[", "^", "]", "$", "(", ")", "=", "!", "<", ">", "|", ":" }; string[] eList = { "\\", "\.", "\+", "\*", "\?", "\{", "\}", "\[", "\^", "\]", "\$", "\(", "\)", "\=", "\!", "\<", "\>", "\|", "\:" }; for (int i = 0; i < oList.Length; i++) s = s.Replace(oList[i], eList[i]); return s; } /// <summary> /// 將ip地址轉換成long型別 /// </summary> /// <param name="ip">ip</param> /// <returns></returns> public static long ConvertIPToLong(string ip) { string[] ips = ip.Split(`.`); long number = 16777216L * long.Parse(ips[0]) + 65536L * long.Parse(ips[1]) + 256 * long.Parse(ips[2]) + long.Parse(ips[3]); return number; } /// <summary> /// 隱藏郵箱 /// </summary> public static string HideEmail(string email) { int index = email.LastIndexOf(`@`); if (index == 1) return "*" + email.Substring(index); if (index == 2) return email[0] + "*" + email.Substring(index); StringBuilder sb = new StringBuilder(); sb.Append(email.Substring(0, 2)); int count = index - 2; while (count > 0) { sb.Append("*"); count--; } sb.Append(email.Substring(index)); return sb.ToString(); } /// <summary> /// 隱藏手機 /// </summary> public static string HideMobile(string mobile) { if (mobile != null && mobile.Length > 10) return mobile.Substring(0, 3) + "*****" + mobile.Substring(8); return string.Empty; } /// <summary> /// 資料轉換為列表 /// </summary> /// <param name="array">陣列</param> /// <returns></returns> public static List<T> ArrayToList<T>(T[] array) { List<T> list = new List<T>(array.Length); foreach (T item in array) list.Add(item); return list; } /// <summary> /// DataTable轉化為List /// </summary> /// <param name="dt">DataTable</param> /// <returns></returns> public static List<Dictionary<string, object>> DataTableToList(DataTable dt) { int columnCount = dt.Columns.Count; List<Dictionary<string, object>> list = new List<Dictionary<string, object>>(dt.Rows.Count); foreach (DataRow dr in dt.Rows) { Dictionary<string, object> item = new Dictionary<string, object>(columnCount); for (int i = 0; i < columnCount; i++) { item.Add(dt.Columns[i].ColumnName, dr[i]); } list.Add(item); } return list; } }