[C#] C#用于对用户输入数据进行校验的类 →→→→→进入此内容的聊天室

来自 , 2020-12-06, 写在 C#, 查看 246 次.
URL http://www.code666.cn/view/ce6babd0
  1. using System;
  2. using System.Text;
  3. using System.Web;
  4. using System.Web.UI.WebControls;
  5. using System.Text.RegularExpressions;
  6.  
  7. namespace DotNet.Utilities
  8. {
  9.     public class PageValidate
  10.     {
  11.         private static Regex RegNumber = new Regex("^[0-9]+$");
  12.         private static Regex RegNumberSign = new Regex("^[+-]?[0-9]+$");
  13.         private static Regex RegDecimal = new Regex("^[0-9]+[.]?[0-9]+$");
  14.         private static Regex RegDecimalSign = new Regex("^[+-]?[0-9]+[.]?[0-9]+$"); //等价于^[+-]?\d+[.]?\d+$
  15.         private static Regex RegEmail = new Regex("^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$");//w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样
  16.         private static Regex RegCHZN = new Regex("[\u4e00-\u9fa5]");
  17.  
  18.         public PageValidate()
  19.         {
  20.         }
  21.  
  22.  
  23.         #region 数字字符串检查
  24.         /// <summary>
  25.         /// 格式化字符串
  26.         /// </summary>
  27.         /// <param name="inputData">源字符串</param>
  28.         /// <param name="formatlevel">0:不做验证| 1:sql语句参数| 2:存储过程参数| 3:EncodeHtml| 4:Encode+sql| 5:Encode+存储过程</param>
  29.         /// <returns>返回格式化后的字符串</returns>
  30.         public static string FormatString(string inputData, int formatlevel)
  31.         {
  32.             return inputData;
  33.         }
  34.         /// <summary>
  35.         /// 检查Request查询字符串的键值,是否是数字,最大长度限制
  36.         /// </summary>
  37.         /// <param name="req">Request</param>
  38.         /// <param name="inputKey">Request的键值</param>
  39.         /// <param name="maxLen">最大长度</param>
  40.         /// <returns>返回Request查询字符串</returns>
  41.         public static string FetchInputDigit(HttpRequest req, string inputKey, int maxLen)
  42.         {
  43.             string retVal = string.Empty;
  44.             if (inputKey != null && inputKey != string.Empty)
  45.             {
  46.                 retVal = req.QueryString[inputKey];
  47.                 if (null == retVal)
  48.                     retVal = req.Form[inputKey];
  49.                 if (null != retVal)
  50.                 {
  51.                     retVal = SqlText(retVal, maxLen);
  52.                     if (!IsNumber(retVal))
  53.                         retVal = string.Empty;
  54.                 }
  55.             }
  56.             if (retVal == null)
  57.                 retVal = string.Empty;
  58.             return retVal;
  59.         }
  60.  
  61.         public enum CheckType
  62.         { None, Int, SignInt, Float, SignFloat, Chinese, Mail }
  63.         /// <summary>
  64.         /// 检测字符串类型
  65.         /// </summary>
  66.         /// <param name="inputData">输入字符串</param>
  67.         /// <param name="checktype">0:不检测| 1:数字| 2:符号数字| 3: 浮点数| 4:符号浮点| 5: 中文?| 6:邮件?</param>
  68.         /// <returns></returns>
  69.         public static bool checkString(string inputData, int checktype)
  70.         {
  71.  
  72.             bool _return = false;
  73.             switch (checktype)
  74.             {
  75.                 case 0:
  76.                     _return = true;
  77.                     break;
  78.                 case 1:
  79.                     _return = IsNumber(inputData);
  80.                     break;
  81.                 case 2:
  82.                     _return = IsNumberSign(inputData);
  83.                     break;
  84.                 case 3:
  85.                     _return = IsDecimal(inputData);
  86.                     break;
  87.                 case 4:
  88.                     _return = IsDecimalSign(inputData);
  89.                     break;
  90.                 case 5:
  91.                     _return = IsHasCHZN(inputData);
  92.                     break;
  93.                 case 6:
  94.                     _return = IsEmail(inputData);
  95.                     break;
  96.                 default:
  97.                     _return = false;
  98.                     break;
  99.             }
  100.             return _return;
  101.         }
  102.         /// <summary>
  103.         /// 是否数字字符串
  104.         /// </summary>
  105.         /// <param name="inputData">输入字符串</param>
  106.         /// <returns></returns>
  107.         public static bool IsNumber(string inputData)
  108.         {
  109.             Match m = RegNumber.Match(inputData);
  110.             return m.Success;
  111.         }
  112.         /// <summary>
  113.         /// 是否数字字符串 可带正负号
  114.         /// </summary>
  115.         /// <param name="inputData">输入字符串</param>
  116.         /// <returns></returns>
  117.         public static bool IsNumberSign(string inputData)
  118.         {
  119.             Match m = RegNumberSign.Match(inputData);
  120.             return m.Success;
  121.         }
  122.         /// <summary>
  123.         /// 是否是浮点数
  124.         /// </summary>
  125.         /// <param name="inputData">输入字符串</param>
  126.         /// <returns></returns>
  127.         public static bool IsDecimal(string inputData)
  128.         {
  129.             Match m = RegDecimal.Match(inputData);
  130.             return m.Success;
  131.         }
  132.         /// <summary>
  133.         /// 是否是浮点数 可带正负号
  134.         /// </summary>
  135.         /// <param name="inputData">输入字符串</param>
  136.         /// <returns></returns>
  137.         public static bool IsDecimalSign(string inputData)
  138.         {
  139.             Match m = RegDecimalSign.Match(inputData);
  140.             return m.Success;
  141.         }
  142.  
  143.         #endregion
  144.  
  145.         #region 中文检测
  146.  
  147.         /// <summary>
  148.         /// 检测是否有中文字符
  149.         /// </summary>
  150.         /// <param name="inputData"></param>
  151.         /// <returns></returns>
  152.         public static bool IsHasCHZN(string inputData)
  153.         {
  154.             Match m = RegCHZN.Match(inputData);
  155.             return m.Success;
  156.         }
  157.  
  158.         #endregion
  159.  
  160.         public static string GetShortDate(string dt)
  161.         {
  162.             return Convert.ToDateTime(dt).ToShortDateString();
  163.         }
  164.  
  165.         #region 邮件地址
  166.         /// <summary>
  167.         /// 是否是浮点数 可带正负号
  168.         /// </summary>
  169.         /// <param name="inputData">输入字符串</param>
  170.         /// <returns></returns>
  171.         public static bool IsEmail(string inputData)
  172.         {
  173.             Match m = RegEmail.Match(inputData);
  174.             return m.Success;
  175.         }
  176.  
  177.         #endregion
  178.  
  179.         #region 其他
  180.  
  181.         /// <summary>
  182.         /// 检查字符串最大长度,返回指定长度的串
  183.         /// </summary>
  184.         /// <param name="sqlInput">输入字符串</param>
  185.         /// <param name="maxLength">最大长度</param>
  186.         /// <returns></returns>                
  187.         public static string SqlText(string sqlInput, int maxLength)
  188.         {
  189.             if (sqlInput != null && sqlInput != string.Empty)
  190.             {
  191.                 sqlInput = sqlInput.Trim();
  192.                 if (sqlInput.Length > maxLength)//按最大长度截取字符串
  193.                     sqlInput = sqlInput.Substring(0, maxLength);
  194.             }
  195.             return sqlInput;
  196.         }
  197.  
  198.  
  199.         /// <summary>
  200.         /// 字符串编码
  201.         /// </summary>
  202.         /// <param name="inputData"></param>
  203.         /// <returns></returns>
  204.         public static string HtmlEncode(string inputData)
  205.         {
  206.             return HttpUtility.HtmlEncode(inputData);
  207.         }
  208.         /// <summary>
  209.         /// 设置Label显示Encode的字符串
  210.         /// </summary>
  211.         /// <param name="lbl"></param>
  212.         /// <param name="txtInput"></param>
  213.         public static void SetLabel(Label lbl, string txtInput)
  214.         {
  215.             lbl.Text = HtmlEncode(txtInput);
  216.         }
  217.         public static void SetLabel(Label lbl, object inputObj)
  218.         {
  219.             SetLabel(lbl, inputObj.ToString());
  220.         }
  221.  
  222.         #endregion
  223.  
  224.         #region 对于用户权限从数据库中读出的解密过程
  225.         public static string switch_riddle(string s_ch)//解密
  226.         {
  227.             string s_out, s_temp, temp;
  228.             int i_len = s_ch.Length;
  229.             if (i_len == 0 || s_ch == "")
  230.             {
  231.                 s_out = "0";
  232.             }
  233.             temp = "";
  234.             s_temp = "";
  235.             s_out = "";
  236.             for (int i = 0; i <= i_len - 1; i++)
  237.             {
  238.                 temp = s_ch.Substring(i, 1);
  239.                 switch (temp)
  240.                 {
  241.                     case "a": s_temp = "1010";
  242.                         break;
  243.                     case "b": s_temp = "1011";
  244.                         break;
  245.                     case "c": s_temp = "1100";
  246.                         break;
  247.                     case "d": s_temp = "1101";
  248.                         break;
  249.                     case "e": s_temp = "1110";
  250.                         break;
  251.                     case "f": s_temp = "1111";
  252.                         break;
  253.                     case "0": s_temp = "0000";
  254.                         break;
  255.                     case "1": s_temp = "0001";
  256.                         break;
  257.                     case "2": s_temp = "0010";
  258.                         break;
  259.                     case "3": s_temp = "0011";
  260.                         break;
  261.                     case "4": s_temp = "0100";
  262.                         break;
  263.                     case "5": s_temp = "0101";
  264.                         break;
  265.                     case "6": s_temp = "0110";
  266.                         break;
  267.                     case "7": s_temp = "0111";
  268.                         break;
  269.                     case "8": s_temp = "1000";
  270.                         break;
  271.                     case "9": s_temp = "1001";
  272.                         break;
  273.                     default: s_temp = "0000";
  274.                         break;
  275.                 }
  276.                 s_out = s_out + s_temp;
  277.                 s_temp = "";
  278.             }
  279.             return s_out;
  280.         }
  281.         #endregion
  282.  
  283.         #region 用户权限的加密过程
  284.         public static string switch_encrypt(string s_ch)
  285.         {
  286.             string s_out, s_temp, temp;
  287.             int i_len = 64;
  288.             if (i_len == 0 || s_ch == "")
  289.             {
  290.                 s_out = "0000";
  291.             }
  292.             temp = "";
  293.             s_temp = "";
  294.             s_out = "";
  295.             for (int i = 0; i <= i_len - 1; i = i + 4)
  296.             {
  297.                 temp = s_ch.Substring(i, 4);
  298.                 switch (temp)
  299.                 {
  300.                     case "1010": s_temp = "a";
  301.                         break;
  302.                     case "1011": s_temp = "b";
  303.                         break;
  304.                     case "1100": s_temp = "c";
  305.                         break;
  306.                     case "1101": s_temp = "d";
  307.                         break;
  308.                     case "1110": s_temp = "e";
  309.                         break;
  310.                     case "1111": s_temp = "f";
  311.                         break;
  312.                     case "0000": s_temp = "0";
  313.                         break;
  314.                     case "0001": s_temp = "1";
  315.                         break;
  316.                     case "0010": s_temp = "2";
  317.                         break;
  318.                     case "0011": s_temp = "3";
  319.                         break;
  320.                     case "0100": s_temp = "4";
  321.                         break;
  322.                     case "0101": s_temp = "5";
  323.                         break;
  324.                     case "0110": s_temp = "6";
  325.                         break;
  326.                     case "0111": s_temp = "7";
  327.                         break;
  328.                     case "1000": s_temp = "8";
  329.                         break;
  330.                     case "1001": s_temp = "9";
  331.                         break;
  332.                     default: s_temp = "0";
  333.                         break;
  334.                 }
  335.                 s_out = s_out + s_temp;
  336.                 s_temp = "";
  337.             }
  338.             return s_out;
  339.         }//加密
  340.         #endregion
  341.  
  342.         #region   访问权限
  343.         public static bool CheckTrue(string s_admin, int a)
  344.         {
  345.             string s_temp = "";
  346.             s_temp = s_admin.Substring(a - 1, 1);   //s_admin为全局变量
  347.             if (s_temp == "" || s_temp == "1")
  348.             {
  349.                 return true;
  350.             }
  351.             else
  352.             {
  353.                 return false;
  354.             }
  355.  
  356.         }
  357.         #endregion
  358.  
  359.         #region   检测字符串长度
  360.         /// <summary>  
  361.         /// 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
  362.         /// </summary>
  363.         /// <param name="Text">需计算长度的字符串</param>
  364.         /// <returns>int</returns>
  365.         public static int Text_Length(string Text)
  366.         {
  367.             int len = 0;
  368.  
  369.             for (int i = 0; i < Text.Length; i++)
  370.             {
  371.                 byte[] byte_len = Encoding.Default.GetBytes(Text.Substring(i, 1));
  372.                 if (byte_len.Length > 1)
  373.                     len += 2;  //如果长度大于1,是中文,占两个字节,+2
  374.                 else
  375.                     len += 1;  //如果长度等于1,是英文,占一个字节,+1
  376.             }
  377.  
  378.             return len;
  379.         }
  380.         #endregion
  381.  
  382.         #region   字符串长度区分中英文截取
  383.         /// <summary>  
  384.         /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度
  385.         /// </summary>
  386.         /// <param name="str">待截取的字符串</param>
  387.         /// <param name="length">需计算长度的字符串</param>
  388.         /// <returns>string</returns>
  389.         public static string GetSubString(string str, int length)
  390.         {
  391.             string temp = str;
  392.             int j = 0;
  393.             int k = 0;
  394.             for (int i = 0; i < temp.Length; i++)
  395.             {
  396.                 if (Regex.IsMatch(temp.Substring(i, 1), @"[\u4e00-\u9fa5]+"))
  397.                 {
  398.                     j += 2;
  399.                 }
  400.                 else
  401.                 {
  402.                     j += 1;
  403.                 }
  404.                 if (j <= length)
  405.                 {
  406.                     k += 1;
  407.                 }
  408.                 if (j > length)
  409.                 {
  410.                     return temp.Substring(0, k) + "..";
  411.                 }
  412.             }
  413.             return temp;
  414.         }
  415.         #endregion
  416.  
  417.         #region 页面HTML格式化
  418.         public static string GetHtml(string sDetail)
  419.         {
  420.             Regex r;
  421.             Match m;
  422.             #region 处理空格
  423.             sDetail = sDetail.Replace(" ", "&nbsp;");
  424.             #endregion
  425.             #region 处理单引号
  426.             sDetail = sDetail.Replace("'", "’");
  427.             #endregion
  428.             #region 处理双引号
  429.             sDetail = sDetail.Replace("\"", """);
  430.            #endregion
  431.            #region html标记符
  432.            sDetail = sDetail.Replace("<", "<");
  433.            sDetail = sDetail.Replace(">", ">");
  434.  
  435.            #endregion
  436.            #region 处理换行
  437.            //处理换行,在每个新行的前面添加两个全角空格
  438.            r = new Regex(@"(\r\n((&nbsp;)| )+)(?<正文>\S+)", RegexOptions.IgnoreCase);
  439.            for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
  440.            {
  441.                sDetail = sDetail.Replace(m.Groups[0].ToString(), "<BR>  " + m.Groups["正文"].ToString());
  442.            }
  443.            //处理换行,在每个新行的前面添加两个全角空格
  444.            sDetail = sDetail.Replace("\r\n", "<BR>");
  445.            #endregion
  446.  
  447.            return sDetail;
  448.        }
  449.        #endregion
  450.  
  451.        #region 分页
  452.        //public static string paging(string url, string para, int sumpage, int page)
  453.        //{
  454.        //    string result = string.Empty;
  455.        //    if (sumpage == 1)
  456.        //    {
  457.        //        return result;
  458.        //    }
  459.        //    if (page > sumpage)
  460.        //    {
  461.        //        page = 1;
  462.        //    }
  463.        //    if (sumpage > 0)
  464.        //    {
  465.        //        for (int i = 1; i <= sumpage; i++)
  466.        //        {
  467.        //            if (i == page)
  468.        //            {
  469.        //                result += string.Format("<a class=\"a_page\" href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, i.ToString(), para, i.ToString() });
  470.         //            }
  471.         //            else
  472.         //            {
  473.         //                result += string.Format("<a href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, i.ToString(), para, i.ToString() });
  474.         //            }
  475.         //        }
  476.         //    }
  477.         //    return result;
  478.         //}
  479.  
  480.         public static string paging(string url, string para, int sumpage, int page)
  481.         {
  482.             string result = string.Empty;
  483.             if (sumpage == 1)
  484.             {
  485.                 return result;
  486.             }
  487.             if (sumpage > 500)
  488.             {
  489.                 sumpage = 500;
  490.             }
  491.             if (page > sumpage)
  492.             {
  493.                 page = 1;
  494.             }
  495.             StringBuilder sb = new StringBuilder();
  496.             if (sumpage > 0)
  497.             {
  498.                 switch (page)
  499.                 {
  500.                     case 1:
  501.                         sb.Append(string.Format("<p class=\"next\"><a href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, page + 1, para, "下一页" }));
  502.                         break;
  503.                     default:
  504.                         if (sumpage == page)
  505.                         {
  506.                             sb.Append(string.Format("<p class=\"next\"><a href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, page - 1, para, "上一页" }));
  507.                         }
  508.                         else
  509.                         {
  510.                             sb.Append(string.Format("<p class=\"next\"><a href=\"{0}?page={1}{2}\">{3}</a> <a href=\"{4}?page={5}{6}\">{7}</a> ",
  511.                                 new object[] { url, page + 1, para, "下一页", url, page - 1, para, "上一页" }));
  512.                         }
  513.                         break;
  514.                 }
  515.                 sb.Append(string.Format("第{0}/{1}页</p>", new object[] { page, sumpage }));
  516.             }
  517.             return sb.ToString();
  518.         }
  519.  
  520.         public static string paging(string url, string para, int sumpage, int page, System.Web.UI.UserControl myPaging)
  521.         {
  522.             myPaging.Visible = false;
  523.             string result = string.Empty;
  524.             if (sumpage == 1)
  525.             {
  526.                 return result;
  527.             }
  528.             if (sumpage > 500)
  529.             {
  530.                 sumpage = 500;
  531.             }
  532.             if (page > sumpage)
  533.             {
  534.                 page = 1;
  535.             }
  536.             StringBuilder sb = new StringBuilder();
  537.             if (sumpage > 0)
  538.             {
  539.                 myPaging.Visible = true;
  540.                 switch (page)
  541.                 {
  542.                     case 1:
  543.                         sb.Append(string.Format("<a href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, page + 1, para, "下一页" }));
  544.                         break;
  545.                     default:
  546.                         if (sumpage == page)
  547.                         {
  548.                             sb.Append(string.Format("<a href=\"{0}?page={1}{2}\">{3}</a> ", new object[] { url, page - 1, para, "上一页" }));
  549.                         }
  550.                         else
  551.                         {
  552.                             sb.Append(string.Format("<a href=\"{0}?page={1}{2}\">{3}</a> <a href=\"{4}?page={5}{6}\">{7}</a> ",
  553.                                 new object[] { url, page + 1, para, "下一页", url, page - 1, para, "上一页" }));
  554.                         }
  555.                         break;
  556.                 }
  557.                 sb.Append(string.Format("第{0}/{1}页", new object[] { page, sumpage }));
  558.             }
  559.             return sb.ToString();
  560.         }
  561.  
  562.         public static string paging(string para, int sumpage, int page, int count)
  563.         {
  564.             string result = string.Empty;
  565.             if (page > sumpage)
  566.             {
  567.                 page = 1;
  568.             }
  569.             StringBuilder sb = new StringBuilder();
  570.             if (sumpage > 0)
  571.             {
  572.                 if (sumpage != 1)
  573.                 {
  574.                     switch (page)
  575.                     {
  576.                         case 1:
  577.                             sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a> ", new object[] { page + 1, para, "下一页" }));
  578.                             break;
  579.                         default:
  580.                             if (sumpage == page)
  581.                             {
  582.                                 sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a> ", new object[] { page - 1, para, "上一页" }));
  583.                             }
  584.                             else
  585.                             {
  586.                                 sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a> <a href=\"?page={3}{4}\">{5}</a> ",
  587.                                     new object[] { page - 1, para, "上一页", page + 1, para, "下一页" }));
  588.                             }
  589.                             break;
  590.                     }
  591.                 }
  592.                 sb.Append(string.Format("第{0}/{1}页 共{2}条", new object[] { page, sumpage, count }));
  593.             }
  594.             return sb.ToString();
  595.         }
  596.  
  597.         public static void paging(string clinktail, int sumpage, int page, System.Web.UI.WebControls.Label page_view)
  598.         {
  599.             if (sumpage > 0)
  600.             {
  601.                 int n = sumpage;    //总页数
  602.                 int x = page;   //得到当前页
  603.                 int i;
  604.                 int endpage;
  605.                 string pageview = "", pageviewtop = "";
  606.                 if (x > 1)
  607.                 {
  608.                     pageview += "&nbsp;&nbsp;<a class='pl' href='?page=1" + clinktail + "'>第1页</a> | ";
  609.                     pageviewtop += "&nbsp;&nbsp;<a class='pl' href='?page=1" + clinktail + "'>第1页</a> | ";
  610.                 }
  611.                 else
  612.                 {
  613.                     pageview += "&nbsp;&nbsp;<font color='#666666'> 第1页 </font> | ";
  614.                     pageviewtop += "&nbsp;&nbsp;<font color='#666666'> 第1页 </font> | ";
  615.                 }
  616.  
  617.                 if (x > 1)
  618.                 {
  619.                     pageviewtop += " <a class='pl' href='?page=" + (x - 1) + "" + clinktail + "'>上1页</a> ";
  620.                 }
  621.                 else
  622.                 {
  623.                     pageviewtop += " <font color='#666666'>上1页</font> ";
  624.                 }
  625.  
  626.                 if (x > ((x - 1) / 10) * 10 && x > 10)
  627.                 {
  628.                     pageview += "<a class='pl' href='?page=" + ((x - 1) / 10) * 10 + "" + clinktail + "' onclink='return false;'>上10页</a>";
  629.                 }
  630.  
  631.                 //if (((x-1) / 10) * 10 + 10) >= n )
  632.                 if (((x - 1) / 10) * 10 + 10 >= n)
  633.                 {
  634.                     endpage = n;
  635.                 }
  636.                 else
  637.                 {
  638.                     endpage = ((x - 1) / 10) * 10 + 10;
  639.                 }
  640.  
  641.                 for (i = ((x - 1) / 10) * 10 + 1; i <= endpage; ++i)
  642.                 {
  643.                     if (i == x)
  644.                     {
  645.                         pageview += " <font color='#FF0000'><b>" + i + "</b></font>";
  646.                     }
  647.                     else
  648.                     {
  649.                         pageview += " <a class='pl' href='?page=" + i + "" + clinktail + "'>" + i + "</a>";
  650.                     }
  651.                 }
  652.  
  653.                 if (x < n)
  654.                 {
  655.                     pageviewtop += " <a class='pl' href='?page=" + (x + 1) + "" + clinktail + "'>下1页</a> ";
  656.                 }
  657.                 else
  658.                 {
  659.                     pageviewtop += " <font color='#666666'>下1页</font> ";
  660.                 }
  661.  
  662.                 if (endpage != n)
  663.                 {
  664.                     pageview += " <a class='pl' href='?page=" + (endpage + 1) + "" + clinktail + "' class='pl' onclink='return false;'>下10页</a> | ";
  665.                 }
  666.                 else
  667.                 {
  668.                     pageview += " | ";
  669.                 }
  670.                 if (x < n)
  671.                 {
  672.                     pageview += " <a class='pl' href='?page=" + n + "" + clinktail + "' class='pl'>第" + n + "页</a> ";
  673.                     pageviewtop += " |  <a class='pl' href='?page=" + n + "" + clinktail + "' class='pl'>第" + n + "页</a> ";
  674.                 }
  675.                 else
  676.                 {
  677.                     pageview += "<font color='#666666'> 第" + n + "页 </font>";
  678.                     pageviewtop += " | <font color='#666666'> 第" + n + "页 </font>";
  679.                 }
  680.                 page_view.Text = pageview.ToString();
  681.             }
  682.             else
  683.             {
  684.                 page_view.Text = "";
  685.             }
  686.         }
  687.  
  688.         //带第一页和最后一页
  689.         public static string paging2(string para, int sumpage, int page, int count)
  690.         {
  691.             string result = string.Empty;
  692.             if (page > sumpage)
  693.             {
  694.                 page = 1;
  695.             }
  696.             StringBuilder sb = new StringBuilder();
  697.             if (sumpage > 0)
  698.             {
  699.                 if (sumpage != 1)
  700.                 {
  701.                     //第一页
  702.                     sb.Append(string.Format("<a href=\"?page={0}{1}\"><img src=\"images/first-icon.gif\" border=\"0\"/></a>&nbsp;&nbsp;", new object[] { 1, para }));
  703.                     switch (page)
  704.                     {
  705.                         case 1:
  706.                             //前一页图片
  707.                             sb.Append(string.Format("<a>{0}</a>", new object[] { "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
  708.                             sb.Append(string.Format("<a>上一页</a><a href=\"?page={0}{1}\">{2}</a> ", new object[] { page + 1, para, "下一页" }));
  709.                             //后一页图片
  710.                             sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page + 1, para, "<img src=\"images/right-icon.gif\" border=\"0\"/>" }));
  711.                             break;
  712.                         default:
  713.                             if (sumpage == page)
  714.                             {
  715.                                 //前一页图片
  716.                                 sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page - 1, para, "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
  717.                                 sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a><a>下一页</a> ", new object[] { page - 1, para, "上一页" }));
  718.                                 //后一页图片
  719.                                 sb.Append(string.Format("<a>{0}</a>", new object[] { "<img src=\"images/right-icon.gif\" />" }));
  720.                             }
  721.                             else
  722.                             {
  723.                                 //前一页图片
  724.                                 sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page - 1, para, "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
  725.                                 sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a> <a href=\"?page={3}{4}\">{5}</a> ",
  726.                                     new object[] { page - 1, para, "上一页", page + 1, para, "下一页" }));
  727.                                 //后一页图片
  728.                                 sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page + 1, para, "<img src=\"images/right-icon.gif\" border=\"0\"/>" }));
  729.                             }
  730.                             break;
  731.                     }
  732.                     //最后一页图片
  733.                     sb.Append(string.Format("&nbsp;&nbsp;<a href=\"?page={0}{1}\"><img src=\"images/last-icon.gif\" border=\"0\"/></a>&nbsp;&nbsp;", new object[] { sumpage, para }));
  734.                 }
  735.                 sb.Append(string.Format("第{0}页/共{1}页 共{2}条", new object[] { page, sumpage, count }));
  736.             }
  737.             return sb.ToString();
  738.         }
  739.  
  740.         public static string paging3(string url, string para, int sumpage, int page, int count)
  741.         {
  742.             string result = string.Empty;
  743.             if (page > sumpage)
  744.             {
  745.                 page = 1;
  746.             }
  747.             StringBuilder sb = new StringBuilder();
  748.             if (sumpage > 0)
  749.             {
  750.                 if (sumpage != 1)
  751.                 {
  752.                     //第一页
  753.                     sb.Append(string.Format("<a href=\"{2}?page={0}{1}\">首页</a>", new object[] { 1, para, url }));
  754.                     switch (page)
  755.                     {
  756.                         case 1:
  757.                             //前一页图片
  758.                             // sb.Append(string.Format("<a>{0}</a>", new object[] { "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
  759.                             sb.Append(string.Format("<a>上一页</a><a href=\"{3}?page={0}{1}\">{2}</a> ", new object[] { page + 1, para, "下一页", url }));
  760.                             //后一页图片
  761.                             // sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page + 1, para, "<img src=\"images/right-icon.gif\" border=\"0\"/>" }));
  762.                             break;
  763.                         default:
  764.                             if (sumpage == page)
  765.                             {
  766.                                 //前一页图片
  767.                                 //sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page - 1, para, "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
  768.                                 sb.Append(string.Format("<a href=\"{3}?page={0}{1}\">{2}</a><a>下一页</a> ", new object[] { page - 1, para, "上一页", url }));
  769.                                 //后一页图片
  770.                                 //sb.Append(string.Format("<a>{0}</a>", new object[] { "<img src=\"images/right-icon.gif\" />" }));
  771.                             }
  772.                             else
  773.                             {
  774.                                 //前一页图片
  775.                                 //sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page - 1, para, "<img src=\"images/left-icon.gif\" border=\"0\"/>" }));
  776.                                 sb.Append(string.Format("<a href=\"{6}?page={0}{1}\">{2}</a> <a href=\"{6}?page={3}{4}\">{5}</a> ",
  777.                                     new object[] { page - 1, para, "上一页", page + 1, para, "下一页", url }));
  778.                                 //后一页图片
  779.                                 //sb.Append(string.Format("<a href=\"?page={0}{1}\">{2}</a>", new object[] { page + 1, para, "<img src=\"images/right-icon.gif\" border=\"0\"/>" }));
  780.                             }
  781.                             break;
  782.                     }
  783.                     //最后一页图片
  784.                     sb.Append(string.Format("<a href=\"{2}?page={0}{1}\">末页</a>&nbsp;&nbsp;", new object[] { sumpage, para, url }));
  785.                 }
  786.                 sb.Append(string.Format("第{0}页/共{1}页 共{2}条", new object[] { page, sumpage, count }));
  787.             }
  788.             return sb.ToString();
  789.         }
  790.         #endregion
  791.  
  792.         #region 日期格式判断
  793.         /// <summary>
  794.         /// 日期格式字符串判断
  795.         /// </summary>
  796.         /// <param name="str"></param>
  797.         /// <returns></returns>
  798.         public static bool IsDateTime(string str)
  799.         {
  800.             try
  801.             {
  802.                 if (!string.IsNullOrEmpty(str))
  803.                 {
  804.                     DateTime.Parse(str);
  805.                     return true;
  806.                 }
  807.                 else
  808.                 {
  809.                     return false;
  810.                 }
  811.             }
  812.             catch
  813.             {
  814.                 return false;
  815.             }
  816.         }
  817.         #endregion
  818.  
  819.         #region 是否由特定字符组成
  820.         public static bool isContainSameChar(string strInput)
  821.         {
  822.             string charInput = string.Empty;
  823.             if (!string.IsNullOrEmpty(strInput))
  824.             {
  825.                 charInput = strInput.Substring(0, 1);
  826.             }
  827.             return isContainSameChar(strInput, charInput, strInput.Length);
  828.         }
  829.  
  830.         public static bool isContainSameChar(string strInput, string charInput, int lenInput)
  831.         {
  832.             if (string.IsNullOrEmpty(charInput))
  833.             {
  834.                 return false;
  835.             }
  836.             else
  837.             {
  838.                 Regex RegNumber = new Regex(string.Format("^([{0}])+$", charInput));
  839.                 //Regex RegNumber = new Regex(string.Format("^([{0}]{{1}})+$", charInput,lenInput));
  840.                 Match m = RegNumber.Match(strInput);
  841.                 return m.Success;
  842.             }
  843.         }
  844.         #endregion
  845.  
  846.         #region 检查输入的参数是不是某些定义好的特殊字符:这个方法目前用于密码输入的安全检查
  847.         /// <summary>
  848.         /// 检查输入的参数是不是某些定义好的特殊字符:这个方法目前用于密码输入的安全检查
  849.         /// </summary>
  850.         public static bool isContainSpecChar(string strInput)
  851.         {
  852.             string[] list = new string[] { "123456", "654321" };
  853.             bool result = new bool();
  854.             for (int i = 0; i < list.Length; i++)
  855.             {
  856.                 if (strInput == list[i])
  857.                 {
  858.                     result = true;
  859.                     break;
  860.                 }
  861.             }
  862.             return result;
  863.         }
  864.         #endregion
  865.     }
  866. }
  867. //csharp/8581

回复 "C#用于对用户输入数据进行校验的类"

这儿你可以回复上面这条便签

captcha