C#实现对用户输入数据进行校验的类实例

本文实例讲述了C#实现对用户输入数据进行校验的类。分享给大家供大家参考。具体如下:

这个C#类包含了各种常用数据验证的函数,包含验证是否是数字,校验email格式,区分中英文截取字符串,区分中英文计算字符串长度,检测是否包含中文字符,判断是否包含特定字符等

using System;
using System.Text;
using System.Web;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
namespace DotNet.Utilities
{
  public class PageValidate
  {
    private static Regex RegNumber = new Regex("^[0-9]+$");
    private static Regex RegNumberSign = new Regex("^[+-]?[0-9]+$");
    private static Regex RegDecimal = new Regex("^[0-9]+[.]?[0-9]+$");
    private static Regex RegDecimalSign = new Regex("^[+-]?[0-9]+[.]?[0-9]+$"); //等价于^[+-]?\d+[.]?\d+$
    private static Regex RegEmail = new Regex("^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$");//w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样
    private static Regex RegCHZN = new Regex("[\u4e00-\u9fa5]");
    public PageValidate()
    {
    }

    #region 数字字符串检查
    /// <summary>
    /// 格式化字符串
    /// </summary>
    /// <param name="inputData">源字符串</param>
    /// <param name="formatlevel">0:不做验证| 1:sql语句参数| 2:存储过程参数| 3:EncodeHtml| 4:Encode+sql| 5:Encode+存储过程</param>
    /// <returns>返回格式化后的字符串</returns>
    public static string FormatString(string inputData, int formatlevel)
    {
      return inputData;
    }
    /// <summary>
    /// 检查Request查询字符串的键值,是否是数字,最大长度限制
    /// </summary>
    /// <param name="req">Request</param>
    /// <param name="inputKey">Request的键值</param>
    /// <param name="maxLen">最大长度</param>
    /// <returns>返回Request查询字符串</returns>
    public static string FetchInputDigit(HttpRequest req, string inputKey, int maxLen)
    {
      string retVal = string.Empty;
      if (inputKey != null && inputKey != string.Empty)
      {
        retVal = req.QueryString[inputKey];
        if (null == retVal)
          retVal = req.Form[inputKey];
        if (null != retVal)
        {
          retVal = SqlText(retVal, maxLen);
          if (!IsNumber(retVal))
            retVal = string.Empty;
        }
      }
      if (retVal == null)
        retVal = string.Empty;
      return retVal;
    }
    public enum CheckType
    { None, Int, SignInt, Float, SignFloat, Chinese, Mail }
    /// <summary>
    /// 检测字符串类型
    /// </summary>
    /// <param name="inputData">输入字符串</param>
    /// <param name="checktype">0:不检测| 1:数字| 2:符号数字| 3: 浮点数| 4:符号浮点| 5: 中文?| 6:邮件?</param>
    /// <returns></returns>
    public static bool checkString(string inputData, int checktype)
    {
      bool _return = false;
      switch (checktype)
      {
        case 0:
          _return = true;
          break;
        case 1:
          _return = IsNumber(inputData);
          break;
        case 2:
          _return = IsNumberSign(inputData);
          break;
        case 3:
          _return = IsDecimal(inputData);
          break;
        case 4:
          _return = IsDecimalSign(inputData);
          break;
        case 5:
          _return = IsHasCHZN(inputData);
          break;
        case 6:
          _return = IsEmail(inputData);
          break;
        default:
          _return = false;
          break;
      }
      return _return;
    }
    /// <summary>
    /// 是否数字字符串
    /// </summary>
    /// <param name="inputData">输入字符串</param>
    /// <returns></returns>
    public static bool IsNumber(string inputData)
    {
      Match m = RegNumber.Match(inputData);
      return m.Success;
    }
    /// <summary>
    /// 是否数字字符串 可带正负号
    /// </summary>
    /// <param name="inputData">输入字符串</param>
    /// <returns></returns>
    public static bool IsNumberSign(string inputData)
    {
      Match m = RegNumberSign.Match(inputData);
      return m.Success;
    }
    /// <summary>
    /// 是否是浮点数
    /// </summary>
    /// <param name="inputData">输入字符串</param>
    /// <returns></returns>
    public static bool IsDecimal(string inputData)
    {
      Match m = RegDecimal.Match(inputData);
      return m.Success;
    }
    /// <summary>
    /// 是否是浮点数 可带正负号
    /// </summary>
    /// <param name="inputData">输入字符串</param>
    /// <returns></returns>
    public static bool IsDecimalSign(string inputData)
    {
      Match m = RegDecimalSign.Match(inputData);
      return m.Success;
    }
    #endregion
    #region 中文检测
    /// <summary>
    /// 检测是否有中文字符
    /// </summary>
    /// <param name="inputData"></param>
    /// <returns></returns>
    public static bool IsHasCHZN(string inputData)
    {
      Match m = RegCHZN.Match(inputData);
      return m.Success;
    }
    #endregion
    public static string GetShortDate(string dt)
    {
      return Convert.ToDateTime(dt).ToShortDateString();
    }
    #region 邮件地址
    /// <summary>
    /// 是否是浮点数 可带正负号
    /// </summary>
    /// <param name="inputData">输入字符串</param>
    /// <returns></returns>
    public static bool IsEmail(string inputData)
    {
      Match m = RegEmail.Match(inputData);
      return m.Success;
    }
    #endregion
    #region 其他
    /// <summary>
    /// 检查字符串最大长度,返回指定长度的串
    /// </summary>
    /// <param name="sqlInput">输入字符串</param>
    /// <param name="maxLength">最大长度</param>
    /// <returns></returns>
    public static string SqlText(string sqlInput, int maxLength)
    {
      if (sqlInput != null && sqlInput != string.Empty)
      {
        sqlInput = sqlInput.Trim();
        if (sqlInput.Length > maxLength)//按最大长度截取字符串
          sqlInput = sqlInput.Substring(0, maxLength);
      }
      return sqlInput;
    }

    /// <summary>
    /// 字符串编码
    /// </summary>
    /// <param name="inputData"></param>
    /// <returns></returns>
    public static string HtmlEncode(string inputData)
    {
      return HttpUtility.HtmlEncode(inputData);
    }
    /// <summary>
    /// 设置Label显示Encode的字符串
    /// </summary>
    /// <param name="lbl"></param>
    /// <param name="txtInput"></param>
    public static void SetLabel(Label lbl, string txtInput)
    {
      lbl.Text = HtmlEncode(txtInput);
    }
    public static void SetLabel(Label lbl, object inputObj)
    {
      SetLabel(lbl, inputObj.ToString());
    }
    #endregion
    #region 对于用户权限从数据库中读出的解密过程
    public static string switch_riddle(string s_ch)//解密
    {
      string s_out, s_temp, temp;
      int i_len = s_ch.Length;
      if (i_len == 0 || s_ch == "")
      {
        s_out = "0";
      }
      temp = "";
      s_temp = "";
      s_out = "";
      for (int i = 0; i <= i_len - 1; i++)
      {
        temp = s_ch.Substring(i, 1);
        switch (temp)
        {
          case "a": s_temp = "1010";
            break;
          case "b": s_temp = "1011";
            break;
          case "c": s_temp = "1100";
            break;
          case "d": s_temp = "1101";
            break;
          case "e": s_temp = "1110";
            break;
          case "f": s_temp = "1111";
            break;
          case "0": s_temp = "0000";
            break;
          case "1": s_temp = "0001";
            break;
          case "2": s_temp = "0010";
            break;
          case "3": s_temp = "0011";
            break;
          case "4": s_temp = "0100";
            break;
          case "5": s_temp = "0101";
            break;
          case "6": s_temp = "0110";
            break;
          case "7": s_temp = "0111";
            break;
          case "8": s_temp = "1000";
            break;
          case "9": s_temp = "1001";
            break;
          default: s_temp = "0000";
            break;
        }
        s_out = s_out + s_temp;
        s_temp = "";
      }
      return s_out;
    }
    #endregion
    #region 用户权限的加密过程
    public static string switch_encrypt(string s_ch)
    {
      string s_out, s_temp, temp;
      int i_len = 64;
      if (i_len == 0 || s_ch == "")
      {
        s_out = "0000";
      }
      temp = "";
      s_temp = "";
      s_out = "";
      for (int i = 0; i <= i_len - 1; i = i + 4)
      {
        temp = s_ch.Substring(i, 4);
        switch (temp)
        {
          case "1010": s_temp = "a";
            break;
          case "1011": s_temp = "b";
            break;
          case "1100": s_temp = "c";
            break;
          case "1101": s_temp = "d";
            break;
          case "1110": s_temp = "e";
            break;
          case "1111": s_temp = "f";
            break;
          case "0000": s_temp = "0";
            break;
          case "0001": s_temp = "1";
            break;
          case "0010": s_temp = "2";
            break;
          case "0011": s_temp = "3";
            break;
          case "0100": s_temp = "4";
            break;
          case "0101": s_temp = "5";
            break;
          case "0110": s_temp = "6";
            break;
          case "0111": s_temp = "7";
            break;
          case "1000": s_temp = "8";
            break;
          case "1001": s_temp = "9";
            break;
          default: s_temp = "0";
            break;
        }
        s_out = s_out + s_temp;
        s_temp = "";
      }
      return s_out;
    }//加密
    #endregion
    #region  访问权限
    public static bool CheckTrue(string s_admin, int a)
    {
      string s_temp = "";
      s_temp = s_admin.Substring(a - 1, 1);  //s_admin为全局变量
      if (s_temp == "" || s_temp == "1")
      {
        return true;
      }
      else
      {
        return false;
      }
    }
    #endregion
    #region  检测字符串长度
    /// <summary>
    /// 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
    /// </summary>
    /// <param name="Text">需计算长度的字符串</param>
    /// <returns>int</returns>
    public static int Text_Length(string Text)
    {
      int len = 0;
      for (int i = 0; i < Text.Length; i++)
      {
        byte[] byte_len = Encoding.Default.GetBytes(Text.Substring(i, 1));
        if (byte_len.Length > 1)
          len += 2; //如果长度大于1,是中文,占两个字节,+2
        else
          len += 1; //如果长度等于1,是英文,占一个字节,+1
      }
      return len;
    }
    #endregion
    #region  字符串长度区分中英文截取
    /// <summary>
    /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度
    /// </summary>
    /// <param name="str">待截取的字符串</param>
    /// <param name="length">需计算长度的字符串</param>
    /// <returns>string</returns>
    public static string GetSubString(string str, int length)
    {
      string temp = str;
      int j = 0;
      int k = 0;
      for (int i = 0; i < temp.Length; i++)
      {
        if (Regex.IsMatch(temp.Substring(i, 1), @"[\u4e00-\u9fa5]+"))
        {
          j += 2;
        }
        else
        {
          j += 1;
        }
        if (j <= length)
        {
          k += 1;
        }
        if (j > length)
        {
          return temp.Substring(0, k) + "..";
        }
      }
      return temp;
    }
    #endregion
    #region 页面HTML格式化
    public static string GetHtml(string sDetail)
    {
      Regex r;
      Match m;
      #region 处理空格
      sDetail = sDetail.Replace(" ", " ");
      #endregion
      #region 处理单引号
      sDetail = sDetail.Replace("'", "'");
      #endregion
      #region 处理双引号
      sDetail = sDetail.Replace("\"", """);
      #endregion
      #region html标记符
      sDetail = sDetail.Replace("<", "<");
      sDetail = sDetail.Replace(">", ">");
      #endregion
      #region 处理换行
      //处理换行,在每个新行的前面添加两个全角空格
      r = new Regex(@"(\r\n(( )| )+)(?<正文>\S+)", RegexOptions.IgnoreCase);
      for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
      {
        sDetail = sDetail.Replace(m.Groups[0].ToString(), "<BR>  " + m.Groups["正文"].ToString());
      }
      //处理换行,在每个新行的前面添加两个全角空格
      sDetail = sDetail.Replace("\r\n", "<BR>");
      #endregion
      return sDetail;
    }
    #endregion
    #region 分页
    //public static string paging(string url, string para, int sumpage, int page)
    //{
    //  string result = string.Empty;
    //  if (sumpage == 1)
    //  {
    //    return result;
    //  }
    //  if (page > sumpage)
    //  {
    //    page = 1;
    //  }
    //  if (sumpage > 0)
    //  {
    //    for (int i = 1; i <= sumpage; i++)
    //    {
    //      if (i == page)
    //      {
    //        result += string.Format("<a class=\"a_page\" href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, i.ToString(), para, i.ToString() });
    //      }
    //      else
    //      {
    //        result += string.Format("<a href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, i.ToString(), para, i.ToString() });
    //      }
    //    }
    //  }
    //  return result;
    //}
    public static string paging(string url, string para, int sumpage, int page)
    {
      string result = string.Empty;
      if (sumpage == 1)
      {
        return result;
      }
      if (sumpage > 500)
      {
        sumpage = 500;
      }
      if (page > sumpage)
      {
        page = 1;
      }
      StringBuilder sb = new StringBuilder();
      if (sumpage > 0)
      {
        switch (page)
        {
          case 1:
            sb.Append(string.Format("<p class=\"next\"><a href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, page + 1, para, "下一页" }));
            break;
          default:
            if (sumpage == page)
            {
              sb.Append(string.Format("<p class=\"next\"><a href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, page - 1, para, "上一页" }));
            }
            else
            {
              sb.Append(string.Format("<p class=\"next\"><a href=\"{0}?page={1}{2}\">{3}</a> <a href=\"{4}?page={5}{6}\">{7}</a> ",
                new object[] { url, page + 1, para, "下一页", url, page - 1, para, "上一页" }));
            }
            break;
        }
        sb.Append(string.Format("第{0}/{1}页</p>", new object[] { page, sumpage }));
      }
      return sb.ToString();
    }
    public static string paging(string url, string para, int sumpage, int page, System.Web.UI.UserControl myPaging)
    {
      myPaging.Visible = false;
      string result = string.Empty;
      if (sumpage == 1)
      {
        return result;
      }
      if (sumpage > 500)
      {
        sumpage = 500;
      }
      if (page > sumpage)
      {
        page = 1;
      }
      StringBuilder sb = new StringBuilder();
      if (sumpage > 0)
      {
        myPaging.Visible = true;
        switch (page)
        {
          case 1:
            sb.Append(string.Format("<a href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, page + 1, para, "下一页" }));
            break;
          default:
            if (sumpage == page)
            {
              sb.Append(string.Format("<a href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, page - 1, para, "上一页" }));
            }
            else
            {
              sb.Append(string.Format("<a href=\"{0}?page={1}{2}\">{3}</a> <a href=\"{4}?page={5}{6}\">{7}</a> ",
                new object[] { url, page + 1, para, "下一页", url, page - 1, para, "上一页" }));
            }
            break;
        }
        sb.Append(string.Format("第{0}/{1}页", new object[] { page, sumpage }));
      }
      return sb.ToString();
    }
    public static string paging(string para, int sumpage, int page, int count)
    {
      string result = string.Empty;
      if (page > sumpage)
      {
        page = 1;
      }
      StringBuilder sb = new StringBuilder();
      if (sumpage > 0)
      {
        if (sumpage != 1)
        {
          switch (page)
          {
            case 1:
              sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a> ", new object[] { page + 1, para, "下一页" }));
              break;
            default:
              if (sumpage == page)
              {
                sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a> ", new object[] { page - 1, para, "上一页" }));
              }
              else
              {
                sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a> <a href=\"?page={3}{4}\">{5}</a> ",
                  new object[] { page - 1, para, "上一页", page + 1, para, "下一页" }));
              }
              break;
          }
        }
        sb.Append(string.Format("第{0}/{1}页 共{2}条", new object[] { page, sumpage, count }));
      }
      return sb.ToString();
    }
    public static void paging(string clinktail, int sumpage, int page, System.Web.UI.WebControls.Label page_view)
    {
      if (sumpage > 0)
      {
        int n = sumpage;  //总页数
        int x = page;  //得到当前页
        int i;
        int endpage;
        string pageview = "", pageviewtop = "";
        if (x > 1)
        {
          pageview += "  <a class='pl' href='?page=1" + clinktail + "'>第1页</a> | ";
          pageviewtop += "  <a class='pl' href='?page=1" + clinktail + "'>第1页</a> | ";
        }
        else
        {
          pageview += "  <font color='#666666'> 第1页 </font> | ";
          pageviewtop += "  <font color='#666666'> 第1页 </font> | ";
        }
        if (x > 1)
        {
          pageviewtop += " <a class='pl' href='?page=" + (x - 1) + "" + clinktail + "'>上1页</a> ";
        }
        else
        {
          pageviewtop += " <font color='#666666'>上1页</font> ";
        }
        if (x > ((x - 1) / 10) * 10 && x > 10)
        {
          pageview += "<a class='pl' href='?page=" + ((x - 1) / 10) * 10 + "" + clinktail + "' onclink='return false;'>上10页</a>";
        }
        //if (((x-1) / 10) * 10 + 10) >= n )
        if (((x - 1) / 10) * 10 + 10 >= n)
        {
          endpage = n;
        }
        else
        {
          endpage = ((x - 1) / 10) * 10 + 10;
        }
        for (i = ((x - 1) / 10) * 10 + 1; i <= endpage; ++i)
        {
          if (i == x)
          {
            pageview += " <font color='#FF0000'><b>" + i + "</b></font>";
          }
          else
          {
            pageview += " <a class='pl' href='?page=" + i + "" + clinktail + "'>" + i + "</a>";
          }
        }
        if (x < n)
        {
          pageviewtop += " <a class='pl' href='?page=" + (x + 1) + "" + clinktail + "'>下1页</a> ";
        }
        else
        {
          pageviewtop += " <font color='#666666'>下1页</font> ";
        }
        if (endpage != n)
        {
          pageview += " <a class='pl' href='?page=" + (endpage + 1) + "" + clinktail + "' class='pl' onclink='return false;'>下10页</a> | ";
        }
        else
        {
          pageview += " | ";
        }
        if (x < n)
        {
          pageview += " <a class='pl' href='?page=" + n + "" + clinktail + "' class='pl'>第" + n + "页</a> ";
          pageviewtop += " | <a class='pl' href='?page=" + n + "" + clinktail + "' class='pl'>第" + n + "页</a> ";
        }
        else
        {
          pageview += "<font color='#666666'> 第" + n + "页 </font>";
          pageviewtop += " | <font color='#666666'> 第" + n + "页 </font>";
        }
        page_view.Text = pageview.ToString();
      }
      else
      {
        page_view.Text = "";
      }
    }
    //带第一页和最后一页
    public static string paging2(string para, int sumpage, int page, int count)
    {
      string result = string.Empty;
      if (page > sumpage)
      {
        page = 1;
      }
      StringBuilder sb = new StringBuilder();
      if (sumpage > 0)
      {
        if (sumpage != 1)
        {
          //第一页
          sb.Append(string.Format("<a href=\"?page={0}{1}\"><img src=\"images/first-icon.gif\" border=\"0\"/></a>  ", new object[] { 1, para }));
          switch (page)
          {
            case 1:
              //前一页图片
              sb.Append(string.Format("<a>{0}</a>", new object[] { "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
              sb.Append(string.Format("<a>上一页</a><a href=\"?page={0}{1}\">{2}</a> ", new object[] { page + 1, para, "下一页" }));
              //后一页图片
              sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page + 1, para, "<img src=\"images/right-icon.gif\" border=\"0\"/>" }));
              break;
            default:
              if (sumpage == page)
              {
                //前一页图片
                sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page - 1, para, "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
                sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a><a>下一页</a> ", new object[] { page - 1, para, "上一页" }));
                //后一页图片
                sb.Append(string.Format("<a>{0}</a>", new object[] { "<img src=\"images/right-icon.gif\" />" }));
              }
              else
              {
                //前一页图片
                sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page - 1, para, "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
                sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a> <a href=\"?page={3}{4}\">{5}</a> ",
                  new object[] { page - 1, para, "上一页", page + 1, para, "下一页" }));
                //后一页图片
                sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page + 1, para, "<img src=\"images/right-icon.gif\" border=\"0\"/>" }));
              }
              break;
          }
          //最后一页图片
          sb.Append(string.Format("  <a href=\"?page={0}{1}\"><img src=\"images/last-icon.gif\" border=\"0\"/></a>  ", new object[] { sumpage, para }));
        }
        sb.Append(string.Format("第{0}页/共{1}页 共{2}条", new object[] { page, sumpage, count }));
      }
      return sb.ToString();
    }
    public static string paging3(string url, string para, int sumpage, int page, int count)
    {
      string result = string.Empty;
      if (page > sumpage)
      {
        page = 1;
      }
      StringBuilder sb = new StringBuilder();
      if (sumpage > 0)
      {
        if (sumpage != 1)
        {
          //第一页
          sb.Append(string.Format("<a href=\"{2}?page={0}{1}\">首页</a>", new object[] { 1, para, url }));
          switch (page)
          {
            case 1:
              //前一页图片
              // sb.Append(string.Format("<a>{0}</a>", new object[] { "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
              sb.Append(string.Format("<a>上一页</a><a href=\"{3}?page={0}{1}\">{2}</a> ", new object[] { page + 1, para, "下一页", url }));
              //后一页图片
              // sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page + 1, para, "<img src=\"images/right-icon.gif\" border=\"0\"/>" }));
              break;
            default:
              if (sumpage == page)
              {
                //前一页图片
                //sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page - 1, para, "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
                sb.Append(string.Format("<a href=\"{3}?page={0}{1}\">{2}</a><a>下一页</a> ", new object[] { page - 1, para, "上一页", url }));
                //后一页图片
                //sb.Append(string.Format("<a>{0}</a>", new object[] { "<img src=\"images/right-icon.gif\" />" }));
              }
              else
              {
                //前一页图片
                //sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page - 1, para, "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
                sb.Append(string.Format("<a href=\"{6}?page={0}{1}\">{2}</a> <a href=\"{6}?page={3}{4}\">{5}</a> ",
                  new object[] { page - 1, para, "上一页", page + 1, para, "下一页", url }));
                //后一页图片
                //sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page + 1, para, "<img src=\"images/right-icon.gif\" border=\"0\"/>" }));
              }
              break;
          }
          //最后一页图片
          sb.Append(string.Format("<a href=\"{2}?page={0}{1}\">末页</a>  ", new object[] { sumpage, para, url }));
        }
        sb.Append(string.Format("第{0}页/共{1}页 共{2}条", new object[] { page, sumpage, count }));
      }
      return sb.ToString();
    }
    #endregion
    #region 日期格式判断
    /// <summary>
    /// 日期格式字符串判断
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public static bool IsDateTime(string str)
    {
      try
      {
        if (!string.IsNullOrEmpty(str))
        {
          DateTime.Parse(str);
          return true;
        }
        else
        {
          return false;
        }
      }
      catch
      {
        return false;
      }
    }
    #endregion
    #region 是否由特定字符组成
    public static bool isContainSameChar(string strInput)
    {
      string charInput = string.Empty;
      if (!string.IsNullOrEmpty(strInput))
      {
        charInput = strInput.Substring(0, 1);
      }
      return isContainSameChar(strInput, charInput, strInput.Length);
    }
    public static bool isContainSameChar(string strInput, string charInput, int lenInput)
    {
      if (string.IsNullOrEmpty(charInput))
      {
        return false;
      }
      else
      {
        Regex RegNumber = new Regex(string.Format("^([{0}])+$", charInput));
        //Regex RegNumber = new Regex(string.Format("^([{0}]{{1}})+$", charInput,lenInput));
        Match m = RegNumber.Match(strInput);
        return m.Success;
      }
    }
    #endregion
    #region 检查输入的参数是不是某些定义好的特殊字符:这个方法目前用于密码输入的安全检查
    /// <summary>
    /// 检查输入的参数是不是某些定义好的特殊字符:这个方法目前用于密码输入的安全检查
    /// </summary>
    public static bool isContainSpecChar(string strInput)
    {
      string[] list = new string[] { "123456", "654321" };
      bool result = new bool();
      for (int i = 0; i < list.Length; i++)
      {
        if (strInput == list[i])
        {
          result = true;
          break;
        }
      }
      return result;
    }
    #endregion
  }
}

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • C#导出GridView数据到Excel文件类实例

    本文实例讲述了C#导出GridView数据到Excel文件类.分享给大家供大家参考.具体如下: 这段C#代码自定义了一个封装类,用于将GridView数据导出到Excel文件 using System; using System.Web; using System.Web.UI; using System.IO; using System.Web.UI.WebControls; namespace DotNet.Utilities { public class ExportExcel { pro

  • ADO,OLEDB,ODBC,DAO,RDO的区别说明

    一 ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口).这些API利用SQL来完成其大部分任务.ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC. 二 DAO:数据访问对象是用来显露了Microsoft Jet数据库引擎(最早是给Mic

  • C#将Excel中的数据转换成DataSet

    使用C#在不借助第三方插件的情况下将Excel中的数据转换成DataSet /// <summary> /// EXCEL数据转换DataSet /// </summary> /// <param name="filePath">文件全路径</param> /// <param name="search">表名</param> /// <returns></returns>

  • ADO.NET 连接数据库字符串小结(Oracle、SqlServer、Access、ODBC)

    ADO.NET 连接到 SQL Server SQL Server .NET Framework 数据提供程序支持类似于 OLE DB (ADO) 连接字符串格式的连接字符串格式. 复制代码 代码如下: using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); // Do work here. } 连接到 OLE DB 数据源 OLE DB .NET Framework

  • C#预定义数据类型之值类型和引用类型介绍

    C#的预定义数据类型包括两种,一种是值类型,一种是引用类型.值类型的变量在内存中是存储在堆栈中的,字面上理解就是直接保存其值,如声明一个属于值类型的整型变量,并给它赋予另一个整型变量的值,则在内存中事先复制一个整型变量的值,然后将其赋予刚刚声明的整型变量,这时内存中就会有两个整型值.引用类型的变量在内存中是直接保存其值的引用.C#语言中大多数复杂数据类型都是引用类型. 先来一个值类型的常量的例子 根据用户输入圆的半径,求圆的面积的代码: using System; using System.Co

  • C#从数据库读取数据到DataSet并保存到xml文件的方法

    本文实例讲述了C#从数据库读取数据到DataSet并保存到xml文件的方法.分享给大家供大家参考.具体实现方法如下: DataSet有一个WriteXml方法可以直接将数据保存到xml文件 using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.IO; public class TestWriteXML { public static void Main() { St

  • C#使用linq查询大数据集的方法

    本文实例讲述了C#使用linq查询大数据集的方法.分享给大家供大家参考.具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LargeNumberQuery { class Program { static void Main(string[] args) { int[] numbers = CreateNumbers(7384738); Con

  • C#连接ODBC数据源的方法

    本文实例讲述了C#连接ODBC数据源的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: // Namespaces, variables, and constants using System; using System.Configuration; using System.Data; using System.Data.Odbc; private void CButton_Click(object sender, System.EventArgs e) {     //

  • C#自定义导出数据到Excel的类实例

    本文实例讲述了C#自定义导出数据到Excel的类.分享给大家供大家参考.具体如下: C#自定义Excel操作类,可以用于将DataTable导出到Excel文件,从Excel文件读取数据. using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; using System.Web; using System.Web.UI; using System.We

  • C#实现对用户输入数据进行校验的类实例

    本文实例讲述了C#实现对用户输入数据进行校验的类.分享给大家供大家参考.具体如下: 这个C#类包含了各种常用数据验证的函数,包含验证是否是数字,校验email格式,区分中英文截取字符串,区分中英文计算字符串长度,检测是否包含中文字符,判断是否包含特定字符等 using System; using System.Text; using System.Web; using System.Web.UI.WebControls; using System.Text.RegularExpressions;

  • java身份证合法性校验工具类实例代码

    1.身份证规则 计算方法(来源百度) 将前面的身份证号码17位数分别乘以不同的系数.从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2. 将这17位数字和系数相乘的结果相加. 用加出来和除以11,看余数是多少? 余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字.其分别对应的最后一位身份证的号码为1-0-X -9-8-7-6-5-4-3-2.(即余数0对应1,余数1对应0,余数2对应X-) 通过上面得知如果余数是3,就会在身份

  • C# 校验帮助类正则表达式

    一.简介 很多时候我们都需要用到一些验证的方法,有时候需要用正则表达式校验数据时,往往需要到网上找很久,结果找到的还不是很符合自己想要的.所以我把自己整理的校验帮助类分享处理,在这里分享一下,给自己留了个底,也给各位需要的朋友们做个参考 二.校验类片段 2.1 邮箱验证 #region IsEmail(是否邮箱) /// <summary> /// 是否邮箱 /// </summary> /// <param name="value">邮箱地址<

  • Java TokenProcessor令牌校验工具类

    关于TokenProcessor令牌校验工具类废话不多说了,直接给大家贴代码了,一切内容就在下面一段代码中,具体代码详情如下所示: public class TokenProcessor { private long privious;// 上次生成表单标识号得时间值 private static TokenProcessor instance = new TokenProcessor(); public static String FORM_TOKEN_KEY = "FORM_TOKEN_KE

  • Java防止文件被篡改之文件校验功能的实例代码

    1.为什么要防止文件被篡改? 答案是显然的,为了保证版权,系统安全性等.之前公司开发一个系统,技术核心是一个科学院院士的研究成果,作为一款商业软件来说,保证公司及作者版权是非常重要的.系统安全性就更不用说了,系统两三下就被搞垮了,那这个系统就不算是一个合格的系统. 2.文件校验和作用 我们都知道,一个系统或者软件都是由众多文件组成的.文件校验和的作用就是保证系统版本的正确性和唯一性.具体原理下面会详细解释. 3.文件校验和的原理 思路和实现的方式可能多种多样,我说的是自己的思路和实现方式,请读者

  • Android身份证号有效性校验工具类案例

    不记得从哪找的了,修改了部分代码,修复在Android平台下使用时,时区时间格式异常的问题. package cn.aikongmeng.demo.utils; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; /** * Created by Arjun on 2017/4/25. * 身份证有效性校验 */ publ

  • PHP用户管理中常用接口调用实例及解析(含源码)

    掌握用户的第一步就是将已经关注的粉丝信息保存起来,这个时候就用到获取用户列表接口.公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成.一次拉取调用最多拉取10000个关注者的OpenID,可以通过多次拉取的方式来满足需求. 一. 获取微信关注用户列表接口调用实例 接口说明 http请求方式:GET 接口调用地址: https://api.weixin.qq.com/cgi-bin/user/get?access

  • 15位和18位身份证JS校验的简单实例

    一.身份证号码的结构和表示形式 1.号码的结构 根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码 表示编码对象出生的年.月.日,按GB/T7408的规定执行,年.月.日代码之间不用分隔符. 4.顺序

  • Spring boot进行参数校验的方法实例详解

    Spring boot开发web项目有时候我们需要对controller层传过来的参数进行一些基本的校验,比如非空.整数值的范围.字符串的长度.日期.邮箱等等.Spring支持JSR-303 Bean Validation API,可以方便的进行校验. 使用注解进行校验 先定义一个form的封装对象 class RequestForm { @Size(min = 1, max = 5) private String name; public String getName() { return n

  • 详解小程序用户登录状态检查与更新实例

    这篇文章主要解决以下问题:用户每次登录小程序(包括第一次使用)及点击小程序的每个页面的时候,我们如何判断他当前的登录状态是否过期?如果过期,如何重新获取用户信息并发送至开发者服务器更新用户信息,以及设置新的用户登录状态? 将这个部分单独作为一篇文章有两个原因: ① wx.getUserInfo(OBJECT) 接口调整,废弃了以前直接获取用户信息的方法: ② 上篇文章授权.登录.session_key.unionId只梳理了登录流程而没有贴实际的代码,所以这篇文章以代码实现为主. 1. 代码逻辑

随机推荐