123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062 |
- using System;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Collections.Generic;
- using System.Reflection;
- using System.Web;
- using System.Web.Mvc;
- using System.ComponentModel;
- namespace Ant.Service.Common
- {
- /// <summary>
- /// 功能描述:共用工具类
- /// </summary>
- public static class Tools
- {
- #region 删除最后结尾的指定字符后的字符
- /// <summary>
- /// 删除最后结尾的指定字符后的字符
- /// </summary>
- public static string DelLastChar(string str, string strchar)
- {
- if (string.IsNullOrEmpty(str))
- return "";
- if (str.LastIndexOf(strchar) >= 0 && str.LastIndexOf(strchar) == str.Length - 1)
- {
- return str.Substring(0, str.LastIndexOf(strchar));
- }
- return str;
- }
- #endregion
- /// <summary>
- /// 截取出身年月日
- /// </summary>
- /// <param name="IDCard">身份证号</param>
- /// <returns></returns>
- public static string GetDate(string IDCard)
- {
- string BirthDay = " ";
- string strYear;
- string strMonth;
- string strDay;
- if (IDCard.Length == 15)
- {
- strYear = IDCard.Substring(6, 2);
- strMonth = IDCard.Substring(8, 2);
- strDay = IDCard.Substring(10, 2);
- BirthDay = "19" + strYear + "- " + strMonth + "- " + strDay;
- }
- if (IDCard.Length == 18)
- {
- strYear = IDCard.Substring(6, 4);
- strMonth = IDCard.Substring(10, 2);
- strDay = IDCard.Substring(12, 2);
- BirthDay = strYear + "- " + strMonth + "- " + strDay;
- }
- return BirthDay;
- }
- #region 获得用户IP
- /// <summary>
- /// 获得用户IP
- /// </summary>
- public static string GetUserIp()
- {
- string ip;
- string[] temp;
- bool isErr = false;
- if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_ForWARDED_For"] == null)
- ip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
- else
- ip = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_ForWARDED_For"].ToString();
- if (ip.Length > 15)
- isErr = true;
- else
- {
- temp = ip.Split('.');
- if (temp.Length == 4)
- {
- for (int i = 0; i < temp.Length; i++)
- {
- if (temp[i].Length > 3) isErr = true;
- }
- }
- else
- isErr = true;
- }
- if (isErr)
- return "1.1.1.1";
- else
- return ip;
- }
- #endregion
- #region 根据配置对指定字符串进行 MD5 加密
- /// <summary>
- /// 根据配置对指定字符串进行 MD5 加密
- /// </summary>
- /// <param name="s"></param>
- /// <returns></returns>
- public static string GetMD5(string s)
- {
- //md5加密
- s = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "md5").ToString();
- return s.ToLower().Substring(8, 16);
- }
- #endregion
- #region 得到字符串长度,一个汉字长度为2
- /// <summary>
- /// 得到字符串长度,一个汉字长度为2
- /// </summary>
- /// <param name="inputString">参数字符串</param>
- /// <returns></returns>
- public static int StrLength(string inputString)
- {
- System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
- int tempLen = 0;
- byte[] s = ascii.GetBytes(inputString);
- for (int i = 0; i < s.Length; i++)
- {
- if ((int)s[i] == 63)
- tempLen += 2;
- else
- tempLen += 1;
- }
- return tempLen;
- }
- #endregion
- #region 截取指定长度字符串
- /// <summary>
- /// 截取指定长度字符串
- /// </summary>
- /// <param name="inputString">要处理的字符串</param>
- /// <param name="len">指定长度</param>
- /// <returns>返回处理后的字符串</returns>
- public static string ClipString(string inputString, int len)
- {
- bool isShowFix = false;
- if (len % 2 == 1)
- {
- isShowFix = true;
- len--;
- }
- System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
- int tempLen = 0;
- string tempString = "";
- byte[] s = ascii.GetBytes(inputString);
- for (int i = 0; i < s.Length; i++)
- {
- if ((int)s[i] == 63)
- tempLen += 2;
- else
- tempLen += 1;
- try
- {
- tempString += inputString.Substring(i, 1);
- }
- catch
- {
- break;
- }
- if (tempLen > len)
- break;
- }
- byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
- if (isShowFix && mybyte.Length > len)
- tempString += "…";
- return tempString;
- }
- #endregion
- #region 获得两个日期的间隔
- /// <summary>
- /// 获得两个日期的间隔
- /// </summary>
- /// <param name="DateTime1">日期一。</param>
- /// <param name="DateTime2">日期二。</param>
- /// <returns>日期间隔TimeSpan。</returns>
- public static TimeSpan DateDiff(DateTime DateTime1, DateTime DateTime2)
- {
- TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
- TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
- TimeSpan ts = ts1.Subtract(ts2).Duration();
- return ts;
- }
- #endregion
- #region 格式化日期时间
- /// <summary>
- /// 格式化日期时间
- /// </summary>
- /// <param name="dateTime1">日期时间</param>
- /// <param name="dateMode">显示模式</param>
- /// <returns>0-9种模式的日期</returns>
- public static string FormatDate(DateTime dateTime1, string dateMode)
- {
- switch (dateMode)
- {
- case "0":
- return dateTime1.ToString("yyyy-MM-dd");
- case "1":
- return dateTime1.ToString("yyyy-MM-dd HH:mm:ss");
- case "2":
- return dateTime1.ToString("yyyy/MM/dd");
- case "3":
- return dateTime1.ToString("yyyy年MM月dd日");
- case "4":
- return dateTime1.ToString("MM-dd");
- case "5":
- return dateTime1.ToString("MM/dd");
- case "6":
- return dateTime1.ToString("MM月dd日");
- case "7":
- return dateTime1.ToString("yyyy-MM");
- case "8":
- return dateTime1.ToString("yyyy/MM");
- case "9":
- return dateTime1.ToString("yyyy年MM月");
- default:
- return dateTime1.ToString();
- }
- }
- #endregion
- #region 得到随机日期
- /// <summary>
- /// 得到随机日期
- /// </summary>
- /// <param name="time1">起始日期</param>
- /// <param name="time2">结束日期</param>
- /// <returns>间隔日期之间的 随机日期</returns>
- public static DateTime GetRandomTime(DateTime time1, DateTime time2)
- {
- Random random = new Random();
- DateTime minTime = new DateTime();
- DateTime maxTime = new DateTime();
- System.TimeSpan ts = new System.TimeSpan(time1.Ticks - time2.Ticks);
- // 获取两个时间相隔的秒数
- double dTotalSecontds = ts.TotalSeconds;
- int iTotalSecontds = 0;
- if (dTotalSecontds > System.Int32.MaxValue)
- {
- iTotalSecontds = System.Int32.MaxValue;
- }
- else if (dTotalSecontds < System.Int32.MinValue)
- {
- iTotalSecontds = System.Int32.MinValue;
- }
- else
- {
- iTotalSecontds = (int)dTotalSecontds;
- }
- if (iTotalSecontds > 0)
- {
- minTime = time2;
- maxTime = time1;
- }
- else if (iTotalSecontds < 0)
- {
- minTime = time1;
- maxTime = time2;
- }
- else
- {
- return time1;
- }
- int maxValue = iTotalSecontds;
- if (iTotalSecontds <= System.Int32.MinValue)
- maxValue = System.Int32.MinValue + 1;
- int i = random.Next(System.Math.Abs(maxValue));
- return minTime.AddSeconds(i);
- }
- /// <summary>
- /// 获取时间戳
- /// </summary>
- public static string GetRandomTimeSpan()
- {
- TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);
- return Convert.ToInt64(ts.TotalSeconds).ToString();
- }
- #endregion
- #region HTML转行成TEXT
- /// <summary>
- /// HTML转行成TEXT
- /// </summary>
- /// <param name="strHtml"></param>
- /// <returns></returns>
- public static string HtmlToTxt(string strHtml)
- {
- string[] aryReg ={
- @"<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 newReg = aryReg[0];
- string strOutput = strHtml;
- for (int i = 0; i < aryReg.Length; i++)
- {
- Regex regex = new Regex(aryReg[i], RegexOptions.IgnoreCase);
- strOutput = regex.Replace(strOutput, string.Empty);
- }
- strOutput.Replace("<", "");
- strOutput.Replace(">", "");
- strOutput.Replace("\r\n", "");
- return strOutput;
- }
- #endregion
- #region 判断对象是否为空
- /// <summary>
- /// 判断对象是否为空,为空返回true
- /// </summary>
- /// <typeparam name="T">要验证的对象的类型</typeparam>
- /// <param name="data">要验证的对象</param>
- public static bool IsNullOrEmpty<T>(this T data)
- {
- //如果为null
- if (data == null)
- {
- return true;
- }
- //如果为""
- if (data.GetType() == typeof(String))
- {
- if (string.IsNullOrEmpty(data.ToString().Trim()) || data.ToString() == "")
- {
- return true;
- }
- }
- //如果为DBNull
- if (data.GetType() == typeof(DBNull))
- {
- return true;
- }
- //不为空
- return false;
- }
- /// <summary>
- /// 判断对象是否为空,为空返回true
- /// </summary>
- /// <param name="data">要验证的对象</param>
- public static bool IsNullOrEmpty(this object data)
- {
- //如果为null
- if (data == null)
- {
- return true;
- }
- //如果为""
- if (data.GetType() == typeof(String))
- {
- if (string.IsNullOrEmpty(data.ToString().Trim()))
- {
- return true;
- }
- }
- //如果为DBNull
- if (data.GetType() == typeof(DBNull))
- {
- return true;
- }
- //不为空
- return false;
- }
- #endregion
- #region 验证IP地址是否合法
- /// <summary>
- /// 验证IP地址是否合法
- /// </summary>
- /// <param name="ip">要验证的IP地址</param>
- public static bool IsIP(string ip)
- {
- //如果为空,认为验证合格
- if (IsNullOrEmpty(ip))
- {
- return true;
- }
- //清除要验证字符串中的空格
- ip = ip.Trim();
- //模式字符串
- string pattern = @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$";
- //验证
- return RegexHelper.IsMatch(ip, pattern);
- }
- #endregion
- #region 验证EMail是否合法
- /// <summary>
- /// 验证EMail是否合法
- /// </summary>
- /// <param name="email">要验证的Email</param>
- public static bool IsEmail(string email)
- {
- //如果为空,认为验证不合格
- if (IsNullOrEmpty(email))
- {
- return false;
- }
- //清除要验证字符串中的空格
- email = email.Trim();
- //模式字符串
- string pattern = @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$";
- //验证
- return RegexHelper.IsMatch(email, pattern);
- }
- #endregion
- #region 验证是否为浮点数
- /// <summary>
- /// 验证是否浮点数
- /// </summary>
- /// <param name="floatNum"></param>
- /// <returns></returns>
- public static bool IsFloat(this string floatNum)
- {
- //如果为空,认为验证不合格
- if (IsNullOrEmpty(floatNum))
- {
- return false;
- }
- //清除要验证字符串中的空格
- floatNum = floatNum.Trim();
- //模式字符串
- string pattern = @"^(-?\d+)(\.\d+)?$";
- //验证
- return RegexHelper.IsMatch(floatNum, pattern);
- }
- #endregion
- #region 验证是否为整数
- /// <summary>
- /// 验证是否为整数 如果为空,认为验证不合格 返回false
- /// </summary>
- /// <param name="number">要验证的整数</param>
- public static bool IsInt(this string number)
- {
- //如果为空,认为验证不合格
- if (IsNullOrEmpty(number))
- {
- return false;
- }
- //清除要验证字符串中的空格
- number = number.Trim();
- //模式字符串
- string pattern = @"^[0-9]+[0-9]*$";
- //验证
- return RegexHelper.IsMatch(number, pattern);
- }
- #endregion
- #region 验证是否为数字
- /// <summary>
- /// 验证是否为数字
- /// </summary>
- /// <param name="number">要验证的数字</param>
- public static bool IsNumber(this string number)
- {
- //如果为空,认为验证不合格
- if (IsNullOrEmpty(number))
- {
- return false;
- }
- //清除要验证字符串中的空格
- number = number.Trim();
- //模式字符串
- string pattern = @"^[0-9]+[0-9]*[.]?[0-9]*$";
- //验证
- return RegexHelper.IsMatch(number, pattern);
- }
- #endregion
- #region 验证日期是否合法
- /// <summary>
- /// 是否是日期
- /// </summary>
- /// <param name="date"></param>
- /// <returns></returns>
- public static bool IsDate(this object date)
- {
- //如果为空,认为验证合格
- if (IsNullOrEmpty(date))
- {
- return false;
- }
- string strdate = date.ToString();
- try
- {
- //用转换测试是否为规则的日期字符
- date = Convert.ToDateTime(date).ToString("d");
- return true;
- }
- catch
- {
- //如果日期字符串中存在非数字,则返回false
- if (!IsInt(strdate))
- {
- return false;
- }
- #region 对纯数字进行解析
- //对8位纯数字进行解析
- if (strdate.Length == 8)
- {
- //获取年月日
- string year = strdate.Substring(0, 4);
- string month = strdate.Substring(4, 2);
- string day = strdate.Substring(6, 2);
- //验证合法性
- if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
- {
- return false;
- }
- if (Convert.ToInt32(month) > 12 || Convert.ToInt32(day) > 31)
- {
- return false;
- }
- //拼接日期
- date = Convert.ToDateTime(year + "-" + month + "-" + day).ToString("d");
- return true;
- }
- //对6位纯数字进行解析
- if (strdate.Length == 6)
- {
- //获取年月
- string year = strdate.Substring(0, 4);
- string month = strdate.Substring(4, 2);
- //验证合法性
- if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
- {
- return false;
- }
- if (Convert.ToInt32(month) > 12)
- {
- return false;
- }
- //拼接日期
- date = Convert.ToDateTime(year + "-" + month).ToString("d");
- return true;
- }
- //对5位纯数字进行解析
- if (strdate.Length == 5)
- {
- //获取年月
- string year = strdate.Substring(0, 4);
- string month = strdate.Substring(4, 1);
- //验证合法性
- if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
- {
- return false;
- }
- //拼接日期
- date = year + "-" + month;
- return true;
- }
- //对4位纯数字进行解析
- if (strdate.Length == 4)
- {
- //获取年
- string year = strdate.Substring(0, 4);
- //验证合法性
- if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
- {
- return false;
- }
- //拼接日期
- date = Convert.ToDateTime(year).ToString("d");
- return true;
- }
- #endregion
- return false;
- }
- }
- /// <summary>
- /// 验证日期是否合法,对不规则的作了简单处理
- /// </summary>
- /// <param name="date">日期</param>
- public static bool IsDate(ref string date)
- {
- //如果为空,认为验证合格
- if (IsNullOrEmpty(date))
- {
- return true;
- }
- //清除要验证字符串中的空格
- date = date.Trim();
- //替换\
- date = date.Replace(@"\", "-");
- //替换/
- date = date.Replace(@"/", "-");
- //如果查找到汉字"今",则认为是当前日期
- if (date.IndexOf("今") != -1)
- {
- date = DateTime.Now.ToString();
- }
- try
- {
- //用转换测试是否为规则的日期字符
- date = Convert.ToDateTime(date).ToString("d");
- return true;
- }
- catch
- {
- //如果日期字符串中存在非数字,则返回false
- if (!IsInt(date))
- {
- return false;
- }
- #region 对纯数字进行解析
- //对8位纯数字进行解析
- if (date.Length == 8)
- {
- //获取年月日
- string year = date.Substring(0, 4);
- string month = date.Substring(4, 2);
- string day = date.Substring(6, 2);
- //验证合法性
- if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
- {
- return false;
- }
- if (Convert.ToInt32(month) > 12 || Convert.ToInt32(day) > 31)
- {
- return false;
- }
- //拼接日期
- date = Convert.ToDateTime(year + "-" + month + "-" + day).ToString("d");
- return true;
- }
- //对6位纯数字进行解析
- if (date.Length == 6)
- {
- //获取年月
- string year = date.Substring(0, 4);
- string month = date.Substring(4, 2);
- //验证合法性
- if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
- {
- return false;
- }
- if (Convert.ToInt32(month) > 12)
- {
- return false;
- }
- //拼接日期
- date = Convert.ToDateTime(year + "-" + month).ToString("d");
- return true;
- }
- //对5位纯数字进行解析
- if (date.Length == 5)
- {
- //获取年月
- string year = date.Substring(0, 4);
- string month = date.Substring(4, 1);
- //验证合法性
- if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
- {
- return false;
- }
- //拼接日期
- date = year + "-" + month;
- return true;
- }
- //对4位纯数字进行解析
- if (date.Length == 4)
- {
- //获取年
- string year = date.Substring(0, 4);
- //验证合法性
- if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
- {
- return false;
- }
- //拼接日期
- date = Convert.ToDateTime(year).ToString("d");
- return true;
- }
- #endregion
- return false;
- }
- }
- #endregion
- #region 验证身份证是否合法
- /// <summary>
- /// 验证身份证是否合法
- /// </summary>
- /// <param name="idCard">要验证的身份证</param>
- public static bool IsIdCard(string idCard)
- {
- //如果为空,认为验证合格
- if (IsNullOrEmpty(idCard))
- {
- return true;
- }
- //清除要验证字符串中的空格
- idCard = idCard.Trim();
- //模式字符串
- StringBuilder pattern = new StringBuilder();
- pattern.Append(@"^(11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|");
- pattern.Append(@"50|51|52|53|54|61|62|63|64|65|71|81|82|91)");
- pattern.Append(@"(\d{13}|\d{15}[\dx])$");
- //验证
- return RegexHelper.IsMatch(idCard, pattern.ToString());
- }
- #endregion
- #region 检测客户的输入中是否有危险字符串
- /// <summary>
- /// 检测客户输入的字符串是否有效,并将原始字符串修改为有效字符串或空字符串。
- /// 当检测到客户的输入中有攻击性危险字符串,则返回false,有效返回true。
- /// </summary>
- /// <param name="input">要检测的字符串</param>
- /// <param name="IsNullValid">是否需要做非空判断,true表示要,false表示不要</param>
- public static bool IsValidInput(ref string input, bool IsNullValid)
- {
- if (IsNullValid == false)
- {
- return true;
- }
- try
- {
- if (IsNullValid && IsNullOrEmpty(input))
- {
- //如果是空值,则跳出
- return false;
- }
- else
- {
- //替换单引号
- input = input.Replace("'", "''").Trim();
- //检测攻击性危险字符串
- string testString = "and |or |exec |insert |select |delete |update |count |chr |mid |master |truncate |char |declare ";
- string[] testArray = testString.Split('|');
- foreach (string testStr in testArray)
- {
- if (input.ToLower().IndexOf(testStr) != -1)
- {
- //检测到攻击字符串,清空传入的值
- input = "";
- return false;
- }
- }
- //未检测到攻击字符串
- return true;
- }
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message);
- }
- }
- #endregion
- /// <summary>
- /// //前台显示邮箱的掩码替换(由tzh@qq.com等替换成t*****@qq.com)
- /// </summary>
- /// <param name="Email">邮箱</param>
- /// <returns></returns>
- public static string GetEmail(string Email)
- {
- string strArg = "";
- string SendEmail = "";
- Match match = Regex.Match(Email, @"(\w)\w+@");
- if (match.Success)
- {
- strArg = match.Groups[1].Value + "*****@";
- SendEmail = Regex.Replace(Email, @"\w+@", strArg);
- }
- else
- SendEmail = Email;
- return SendEmail;
- }
- /// <summary>
- /// 检查字符串是否存在与一个,组合到一起的字符串数组中
- /// </summary>
- /// <param name="strSplit">未分割的字符串</param>
- /// <param name="split">分割符号</param>
- /// <param name="targetValue">目标字符串</param>
- /// <returns></returns>
- public static bool CheckStringHasValue(string strSplit, char split, string targetValue)
- {
- string[] strList = strSplit.Split(split);
- foreach (string str in strList)
- {
- if (targetValue == str)
- return true;
- }
- return false;
- }
- #region 枚举型相关操作
- /// <summary>
- /// 功能描述;获取枚举名称.传入枚举类型和枚举值
- /// 创建标识:徐戈
- /// </summary>
- /// <param name="enumType"></param>
- /// <param name="intEnumValue"></param>
- /// <returns></returns>
- public static string GetEnumText<T>(int intEnumValue)
- {
- return Enum.GetName(typeof(T), intEnumValue);
- }
- /// <summary>
- /// 功能描述:获取枚举项集合,传入枚举类型
- /// 创建标识:add by 季健国 2013-8-23 9:38
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <returns></returns>
- public static IList<object> BindEnums<T>()
- {
- IList<object> _list = new List<object>();
- //遍历枚举集合
- foreach (int i in Enum.GetValues(typeof(T)))
- {
- var _selItem = new
- {
- Value = i,
- Text = Enum.GetName(typeof(T), i)
- };
- _list.Add(_selItem);
- }
- return _list;
- }
- ///<summary>
- /// 返回 Dic 枚举项,描述
- ///</summary>
- ///<param name="enumType"></param>
- ///<returns>Dic枚举项,描述</returns>
- public static Dictionary<string, string> BindEnums(Type enumType)
- {
- Dictionary<string, string> dic = new Dictionary<string, string>();
- FieldInfo[] fieldinfos = enumType.GetFields();
- foreach (FieldInfo field in fieldinfos)
- {
- if (field.FieldType.IsEnum)
- {
- Object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
- dic.Add(field.Name, ((DescriptionAttribute)objs[0]).Description);
- }
- }
- return dic;
- }
- ///<summary>
- /// 返回 List《Enums.EnumsClass》 枚举值、名称、描述
- ///</summary>
- public static List<Enums.EnumsClass> BindEnumsList(Type enumType)
- {
- var list = new List<Enums.EnumsClass>();
- FieldInfo[] fieldinfos = enumType.GetFields();
- var enumvalue = Enum.GetValues(enumType);
- foreach (FieldInfo field in fieldinfos)
- {
- if (field.FieldType.IsEnum)
- {
- int ev = -1;
- Object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
- foreach (int item in enumvalue)
- {
- if (Enum.GetName(enumType, item) == field.Name)
- {
- ev = item;
- break;
- }
- }
- list.Add(new Enums.EnumsClass
- {
- Name = field.Name,
- Value = ev,
- Text = objs.Length > 0 ? ((DescriptionAttribute)objs[0]).Description : field.Name
- }); ;
- }
- }
- return list;
- }
- #endregion
- #region 获取集合中某个字段的拼接,例:获取姓名拼接
- /// <summary>
- /// 功能描述:获取集合中某个字段的拼接,例:获取姓名拼接
- /// 创建标识:徐戈
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="list">集合</param>
- /// <param name="strFieldName">字段名</param>
- /// <param name="strSplit">分隔符</param>
- /// <returns></returns>
- public static string GetFieldValueJoin<T>(IList<T> list, string strFieldName, string strSplit)
- {
- //判断入口
- if (list == null || list.Count <= 0 || string.IsNullOrEmpty(strFieldName))
- return string.Empty;
- //获取属性
- PropertyInfo _pro = typeof(T).GetProperty(strFieldName);
- if (_pro == null)
- return string.Empty;
- //变量,记录返回值
- string _strReturn = string.Empty;
- foreach (T _entityI in list)
- {
- //获取属性值
- object _objValue = _pro.GetValue(_entityI, null);
- if (_objValue == null || string.IsNullOrEmpty(_objValue.ToString()))
- //没有属性值,则跳过
- continue;
- //有属性值,则拼接
- _strReturn += _objValue.ToString() + strSplit;
- }
- if (string.IsNullOrEmpty(_strReturn))
- return string.Empty;
- return _strReturn.Substring(0, _strReturn.Length - strSplit.Length);
- }
- #endregion
- #region 操作Cookie
- /// <summary>
- /// 功能描述:保存Cookie
- /// 创建标识:徐戈
- /// </summary>
- /// <param name="strKey"></param>
- /// <param name="strValue"></param>
- public static void SaveCookie(string strCookieKey, string strValue)
- {
- //写入Cookie
- HttpContext.Current.Response.Cookies[strCookieKey].Value = strValue;
- HttpContext.Current.Response.Cookies[strCookieKey].Expires = DateTime.MaxValue;
- }
- /// <summary>
- /// 功能描述:获取Cookie
- /// 创建标识:徐戈
- /// </summary>
- /// <param name="emCookieKey"></param>
- /// <returns></returns>
- public static string GetCookie(string strCookieKey)
- {
- try
- {
- //获取emCookieKey枚举对应的名称
- return HttpContext.Current.Request.Cookies[strCookieKey].Value;
- }
- catch //(Exception ex)
- {
- return string.Empty;
- }
- }
- #endregion
- }
- }
|