在ASP.NET平台下.用户可以使用控件和正则表达式在服务器端实现输入验证,相对来说验证控件使 用简单 且能满足大部分需求 但说句实话 偶对这些东东是不敢恭维
Microsoft Visual Studio验证控件 既是客户端验证又是服务器端验证 当我们触发验证 就会自动生 成很多客户端脚本 如果我们单击按扭不但要触发验证 还要写一些其它的脚本 验证将可能失效 在项目 中为了防止这类意外发生 有人提了用客户端验证 但是敲过代码的都晓得客户端不安全 所以只有先服务 器端验证有时间再加个客户端验证咯
服务器端验证
问题一:验证什么
日期控件 下拉列表 多选 单选 还有最常用的文本框 等等。。
是否为空 是不是数字 字符串的长度等等。。
问题二:什么时候开始验证
什么时候需要验证 什么时候需要用到那些客户输入 但需要注意的是验证不能写的到处是 我们可以定 义一个方法 专门验证页的输入
问题四:异常处理
异常有两种 一种是系统异常 一种是逻辑异常 我们要做的是对逻辑异常的处理 我写了些验证 其实网 上多的是 屁话少说 看代码!。
项目公用输入验证
using System; using System.Collections.Generic; using System.Text.RegularExpressions; namespace Nadim.Verify.Common { /// <summary> /// 参数检验 /// </summary> public static class ParameterVerify { #region 检验字符串 /// <summary> /// 检验字符串是否有非法字符 /// </summary> /// <param name="strInput">输入字符串</param> /// <returns>是否通过检验</returns> public static bool VerifyString(string strInput) { //参数检查 if (strInput == null || strInput.Trim() == "") return true; //检查是否有非法字符 if (Regex.IsMatch(strInput, "([<>'\"])|(delete from)|(drop table)")) return false; else return true; } #endregion #region 检验日期字符串 /// <summary> /// 检验日期字符串是否合法 /// </summary> /// <param name="strInput">输入字符串</param> /// <returns>是否通过检验</returns> public static bool VerifyDate(string strInput) { if (strInput == null || strInput.Trim() == "") return false; try { Convert.ToDateTime(strInput); } catch (FormatException) { return false; } return true; } #endregion #region 检验时间字符串 /// <summary> /// 检验时间字符串,验证格式(YYYY-MM-DD hh:mm:ss) /// </summary> /// <param name="strInput">要验证的字符串</param> /// <returns>是否通过检验</returns> public static bool VerifyDateTime(string strInput) { //参数检查 if (strInput == null || strInput.Trim() == "") return false; if (Regex.IsMatch(strInput, @"^(\d{4})(-|/)?((0[1-9])|(1[0-2]))(-|/)?(((0 [1-9])|([1-2][0-9]))|(3[0-1])) ([0-1][0-9])|(2[0-3]):([0-5][0-9]):([0-5][0-9])$")) return true; else return false; } #endregion #region 检验编码字符串 /// <summary> /// 检验是否是正确的编码字符串,格式:字母、数字、“-”、“_” /// </summary> /// <param name="strInput">输入字符</param> /// <param name="minsize">最小长度</param> /// <param name="maxsize">最大长度</param> /// <returns>是否通过检验</returns> public static bool VerifyNo(string strInput, int minsize, int maxsize) { //参数检查 if (strInput == null) return false; String expression = @"^(((\w)|(_)|(-)|(\s)){" + minsize + "," + maxsize + @"})$"; if (Regex.IsMatch(strInput, expression)) return true; else return false; } #endregion #region 检验数字字符串 /// <summary> /// 检验数字字符串 /// </summary> /// <param name="strInput">输入字符</param> /// <param name="length">数字长度(不算小数点)</param> /// <param name="precision">小数点后的位数</param> /// <param name="allowMinus">是否允许为负数</param> /// <returns>是否通过检验</returns> public static bool VerifyDecimal(string strInput, int length, int precision, bool allowMinus) { String expression; //参数检查 if (strInput == null) return false; //判断是否可为负数 if (allowMinus) expression = @"^(-{0,1}[0-9]{0," + (length - precision).ToString() + @"}\.{0,1}|\.[0-9]{1," + precision.ToString() + @"}|-{0,1}[0-9]{1," + (length - precision).ToString() + @"}\.[0-9]{0," + precision.ToString() + @"})$"; else expression = @"^([0-9]{0," + (length - precision).ToString() + @"}\.{0,1}|\.[0-9]{1," + precision.ToString() + @"}|-{0,1}[0-9]{1," + (length - precision).ToString() + @"}\.[0-9]{0," + precision.ToString() + @"})$"; if (Regex.IsMatch(strInput, expression)) return true; else return false; } #endregion #region 检验变长字符串 /// <summary> /// 检验变长字符串 /// </summary> /// <param name="strInput">输入字符串</param> /// <param name="minsize">最小长度</param> /// <param name="maxsize">最大长度</param> /// <returns>是否通过检验</returns> public static bool VerifyVarchar(string strInput, int minsize, int maxsize) { //参数检查 if (strInput == null) return false; if (VerifyString(strInput) && strInput.Length >= minsize && strInput.Length <= maxsize) return true; else return false; } #endregion #region 检验整数字符串 /// <summary> /// 检验整数字符串 /// </summary> /// <param name="strInput">输入字符串</param> /// <param name="allowMinus">是否允许为负数</param> /// <returns>是否通过检验</returns> public static bool VerifyInt(string strInput, bool allowMinus) { int i; //参数检查 if (strInput == null) return false; try { i = Convert.ToInt32(strInput.Trim()); if (allowMinus == false && i < 0) return false; else return true; } catch (FormatException) { return false; } } #endregion } }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字符串
, 验证
, return
, tostring
, 参数最大长度
, 输入
, net 字符串 bool
, 验证异常
, 检验
, 验证输入参数
, 最大长度验证
Trim失效
,以便于您获取更多的相关知识。