常用函数

/// <summary>
          /// 检验日期格式是否正确
          /// </summary>
          #region public string IsDateFormat(string strDate)
          public string IsDateFormat(string strDate)
          {
               strDate = strDate.Trim();

               Regex r1 = new Regex(@"^(?<year>[1-9][0-9]{0,3})/(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})$");
               Regex r2 = new Regex(@"^(?<year>[1-9][0-9]{0,3})-(?<month>[0-9]{1,2})-(?<day>[0-9]{1,2})$");
               Regex r3 = new Regex(@"^(?<year>[1-9][0-9]{0,3})年(?<month>[0-9]{1,2})月(?<day>[0-9]{1,2})日$");
               Regex r4 = new Regex(@"^(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})/(?<year>[1-9][0-9]{0,3})$");

               // 取得日期的年,月,日
               string year, month, date;

               if(Regex.IsMatch(strDate,@"^(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})/(?<year>[1-9][0-9]{3})$"))
               {
                    year = r4.Match(strDate).Result("${year}");
                    month = r4.Match(strDate).Result("${month}");
                    date = r4.Match(strDate).Result("${day}");
               }
               else if (Regex.IsMatch(strDate,@"^(?<year>[1-9][0-9]{0,3})/(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})$"))
               {
                    year = r1.Match(strDate).Result("${year}");
                    month = r1.Match(strDate).Result("${month}");
                    date = r1.Match(strDate).Result("${day}");
               }
               else if(Regex.IsMatch(strDate,@"^(?<year>[1-9][0-9]{0,3})-(?<month>[0-9]{1,2})-(?<day>[0-9]{1,2})$"))
               {
                    year = r2.Match(strDate).Result("${year}");
                    month = r2.Match(strDate).Result("${month}");
                    date = r2.Match(strDate).Result("${day}");
               }
               else if(Regex.IsMatch(strDate,@"^(?<year>[1-9][0-9]{0,3})年(?<month>[0-9]{1,2})月(?<day>[0-9]{1,2})日$"))
               {
                    year = r3.Match(strDate).Result("${year}");
                    month = r3.Match(strDate).Result("${month}");
                    date = r3.Match(strDate).Result("${day}");
               }               
               else
               {
                    return "error";
               }

               // 最后检查日期的正确性
               try
               {
                    System.DateTime dt = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(date));
                    return dt.ToString("yyyy-MM-dd");
               }
               catch
               {
                    return "error";
               }
          }
          #endregion

          ------------------------------------------------------------------------------------------

          /// <summary>
          /// 检验Email字符串格式是否正确
          /// </summary>
          #region public bool IsEmailFormat(string strEmail)
          public bool IsEmailFormat(string strEmail)
          {
               return Regex.IsMatch(strEmail, @"^([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$");
          }
          #endregion

          ------------------------------------------------------------------------------------------


          /// <summary>
          /// 转换十五位身份证为十八位的函数。
          /// </summary>
          #region public string ConvertIDCard15to18(string strTemp)
          public string ConvertIDCard15to18(string strTemp)
          {
               int[] arrInt = new int[]{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
               string arrCh="10X98765432";
               int nTemp = 0;
               if(strTemp.Length==15)
               {
                    strTemp = strTemp.Substring(0,6) + "19" + strTemp.Substring(6,strTemp.Length-6);
                    for(int i = 0; i < strTemp.Length; i++)
                    {
                         nTemp += int.Parse(strTemp.Substring(i, 1).ToString()) * arrInt[i];
                    }
                    strTemp += arrCh[nTemp % 11];
               }
               char dd=arrCh[nTemp % 11];
               return strTemp;
          }
          #endregion
         
          ------------------------------------------------------------------------------------------

          下在为判断ASCII码的函数组,仅支持中英文

          /// <summary>
          /// 是否为双字节字符。
          /// </summary>
          public static bool IsTwoBytesChar(char chr)
          {
               string str =chr.ToString();
               // 使用中文支持编码
               Encoding ecode = Encoding.GetEncoding("GB18030");
               if (ecode.GetByteCount(str) == 2)
               {
                    return true;
               }
               else
               {
                    return false;
               }
          }

          /// <summary>
          /// 得到字符的ASCII码
          /// </summary>
          public static int ASCII(char chr)
          {
               Encoding ecode = Encoding.GetEncoding("GB18030");
               Byte[] codeBytes = ecode.GetBytes(chr.ToString());
               if ( IsTwoBytesChar(chr) )
               {
                    // 双字节码为高位乘256,再加低位
                    // 该为无符号码,再减65536
                    return (int)codeBytes[0] * 256 + (int)codeBytes[1] - 65536;
               }
               else
               {
                    return (int)codeBytes[0];
               }
          }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值