您的位置:首页 > 编程语言

Common层通用代码之服务器端正则表达式验证

2007-05-24 18:53 253 查看

using System;


using System.Collections.Generic;


using System.Text;


using System.Text.RegularExpressions;


using System.Web;


using System.Web.UI.WebControls;




namespace Common




...{


    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]");


        private static Regex RegDate = new Regex(@"^((((1[6-9]|[2-9]/d)/d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]/d|3[01]))|(((1[6-9]|[2-9]/d)/d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]/d|30))|(((1[6-9]|[2-9]/d)/d{2})-0?2-(0?[1-9]|1/d|2[0-8]))|(((1[6-9]|[2-9]/d)(0[48]|[2468][048
4000
]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$");


        private static Regex RegDateTime = new Regex(@"^((((1[6-9]|[2-9]/d)/d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]/d|3[01]))|(((1[6-9]|[2-9]/d)/d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]/d|30))|(((1[6-9]|[2-9]/d)/d{2})-0?2-(0?[1-9]|1/d|2[0-8]))|(((1[6-9]|[2-9]/d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?/d):[0-5]?/d:[0-5]?/d$");




        public PageValidate()




        ...{


        }






        日期格式检查#region 日期格式检查




        /**//// <summary>


        /// 是否是日期格式


        /// </summary>


        /// <param name="inputData">输入字符串</param>


        /// <returns></returns>


        public static bool IsDate(string inputData)




        ...{


            Match m = RegDate.Match(inputData);


            return m.Success;


        }








        /**//// <summary>


        /// 是否是带时间的日期格式


        /// </summary>


        /// <param name="inputData">输入字符串</param>


        /// <returns></returns>


        public static bool IsDateTime(string inputData)




        ...{


            Match m = RegDateTime.Match(inputData);


            return m.Success;


        }


        #endregion






        数字字符串检查#region 数字字符串检查






        /**//// <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;


        }




        /**//// <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






        邮件地址#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




    }


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐