栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

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

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 数字字符串检查
    /// 
    /// 格式化字符串
    /// 
    /// 源字符串
    /// 0:不做验证| 1:sql语句参数| 2:存储过程参数| 3:EncodeHtml| 4:Encode+sql| 5:Encode+存储过程
    /// 返回格式化后的字符串
    public static string FormatString(string inputData, int formatlevel)
    {
      return inputData;
    }
    /// 
    /// 检查Request查询字符串的键值,是否是数字,最大长度限制
    /// 
    /// Request
    /// Request的键值
    /// 最大长度
    /// 返回Request查询字符串
    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 }
    /// 
    /// 检测字符串类型
    /// 
    /// 输入字符串
    /// 0:不检测| 1:数字| 2:符号数字| 3: 浮点数| 4:符号浮点| 5: 中文?| 6:邮件?
    /// 
    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;
    }
    /// 
    /// 是否数字字符串
    /// 
    /// 输入字符串
    /// 
    public static bool IsNumber(string inputData)
    {
      Match m = RegNumber.Match(inputData);
      return m.Success;
    }
    /// 
    /// 是否数字字符串 可带正负号
    /// 
    /// 输入字符串
    /// 
    public static bool IsNumberSign(string inputData)
    {
      Match m = RegNumberSign.Match(inputData);
      return m.Success;
    }
    /// 
    /// 是否是浮点数
    /// 
    /// 输入字符串
    /// 
    public static bool IsDecimal(string inputData)
    {
      Match m = RegDecimal.Match(inputData);
      return m.Success;
    }
    /// 
    /// 是否是浮点数 可带正负号
    /// 
    /// 输入字符串
    /// 
    public static bool IsDecimalSign(string inputData)
    {
      Match m = RegDecimalSign.Match(inputData);
      return m.Success;
    }
    #endregion
    #region 中文检测
    /// 
    /// 检测是否有中文字符
    /// 
    /// 
    /// 
    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 邮件地址
    /// 
    /// 是否是浮点数 可带正负号
    /// 
    /// 输入字符串
    /// 
    public static bool IsEmail(string inputData)
    {
      Match m = RegEmail.Match(inputData);
      return m.Success;
    }
    #endregion
    #region 其他
    /// 
    /// 检查字符串最大长度,返回指定长度的串
    /// 
    /// 输入字符串
    /// 最大长度
    ///     
    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;
    }
 
    /// 
    /// 字符串编码
    /// 
    /// 
    /// 
    public static string HtmlEncode(string inputData)
    {
      return HttpUtility.HtmlEncode(inputData);
    }
    /// 
    /// 设置Label显示Encode的字符串
    /// 
    /// 
    /// 
    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  检测字符串长度
    ///  
    /// 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
    /// 
    /// 需计算长度的字符串
    /// int
    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  字符串长度区分中英文截取
    ///  
    /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度
    /// 
    /// 待截取的字符串
    /// 需计算长度的字符串
    /// string
    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(@"(rn(( )| )+)(?<正文>S+)", RegexOptions.IgnoreCase);
      for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
      {
 sDetail = sDetail.Replace(m.Groups[0].ToString(), "
  " + m.Groups["正文"].ToString()); } //处理换行,在每个新行的前面添加两个全角空格 sDetail = sDetail.Replace("rn", "
"); #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("{3} ", new object[] { url, i.ToString(), para, i.ToString() }); // } // else // { // result += string.Format("{3} ", 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("

{3} ", new object[] { url, page + 1, para, "下一页" })); break; default: if (sumpage == page) { sb.Append(string.Format("

{3} ", new object[] { url, page - 1, para, "上一页" })); } else { sb.Append(string.Format("

{3} {7} ", 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 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("{3} ", new object[] { url, page + 1, para, "下一页" })); break; default: if (sumpage == page) { sb.Append(string.Format("{3} ", new object[] { url, page - 1, para, "上一页" })); } else { sb.Append(string.Format("{3} {7} ", 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("{2} ", new object[] { page + 1, para, "下一页" })); break; default: if (sumpage == page) { sb.Append(string.Format("{2} ", new object[] { page - 1, para, "上一页" })); } else { sb.Append(string.Format("{2} {5} ", 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 += "  第1页 | "; pageviewtop += "  第1页 | "; } else { pageview += "   第1页 | "; pageviewtop += "   第1页 | "; } if (x > 1) { pageviewtop += " 上1页 "; } else { pageviewtop += " 上1页 "; } if (x > ((x - 1) / 10) * 10 && x > 10) { pageview += "上10页"; } //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 += " " + i + ""; } else { pageview += " " + i + ""; } } if (x < n) { pageviewtop += " 下1页 "; } else { pageviewtop += " 下1页 "; } if (endpage != n) { pageview += " 下10页 | "; } else { pageview += " | "; } if (x < n) { pageview += " 第" + n + "页 "; pageviewtop += " | 第" + n + "页 "; } else { pageview += " 第" + n + "页 "; pageviewtop += " | 第" + n + "页 "; } 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("  ", new object[] { 1, para })); switch (page) { case 1: //前一页图片 sb.Append(string.Format("{0}", new object[] { "" })); sb.Append(string.Format("上一页{2} ", new object[] { page + 1, para, "下一页" })); //后一页图片 sb.Append(string.Format("{2}", new object[] { page + 1, para, "" })); break; default: if (sumpage == page) { //前一页图片 sb.Append(string.Format("{2}", new object[] { page - 1, para, "" })); sb.Append(string.Format("{2}下一页 ", new object[] { page - 1, para, "上一页" })); //后一页图片 sb.Append(string.Format("{0}", new object[] { "" })); } else { //前一页图片 sb.Append(string.Format("{2}", new object[] { page - 1, para, "" })); sb.Append(string.Format("{2} {5} ", new object[] { page - 1, para, "上一页", page + 1, para, "下一页" })); //后一页图片 sb.Append(string.Format("{2}", new object[] { page + 1, para, "" })); } break; } //最后一页图片 sb.Append(string.Format("    ", 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("首页", new object[] { 1, para, url })); switch (page) { case 1: //前一页图片 // sb.Append(string.Format("{0}", new object[] { "" })); sb.Append(string.Format("上一页{2} ", new object[] { page + 1, para, "下一页", url })); //后一页图片 // sb.Append(string.Format("{2}", new object[] { page + 1, para, "" })); break; default: if (sumpage == page) { //前一页图片 //sb.Append(string.Format("{2}", new object[] { page - 1, para, "" })); sb.Append(string.Format("{2}下一页 ", new object[] { page - 1, para, "上一页", url })); //后一页图片 //sb.Append(string.Format("{0}", new object[] { "" })); } else { //前一页图片 //sb.Append(string.Format("{2}", new object[] { page - 1, para, "" })); sb.Append(string.Format("{2} {5} ", new object[] { page - 1, para, "上一页", page + 1, para, "下一页", url })); //后一页图片 //sb.Append(string.Format("{2}", new object[] { page + 1, para, "" })); } break; } //最后一页图片 sb.Append(string.Format("末页  ", new object[] { sumpage, para, url })); } sb.Append(string.Format("第{0}页/共{1}页 共{2}条", new object[] { page, sumpage, count })); } return sb.ToString(); } #endregion #region 日期格式判断 /// /// 日期格式字符串判断 /// /// /// 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 检查输入的参数是不是某些定义好的特殊字符:这个方法目前用于密码输入的安全检查 /// /// 检查输入的参数是不是某些定义好的特殊字符:这个方法目前用于密码输入的安全检查 /// 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#程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/125603.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号