.Write(reg.IsMatch(txtName.Text)); // Static?method: if?(!Regex.IsMatch(txtName.Text,@"^[a-zA-Z’./s]{1,40}$"))?
{ ? // Name?does?not?match?expression } 如果你不能把经常使用的正则表达式缓存起来,你应该使用 IsMatch 静态方法来改进性 能防止不必要的对象创建过程. 验证数字字段 在大多数情况下,应该验证数字的输入和范围.使用服务器控件验证数字字段的输入和范 围,使用 RangeValidator 控件.RangeValidator 支持货币,日期,整型,双精度和字符串类型的 数据. 使用 RangeValidator 控件需要设置需要验证的控件名(ControlToValidate),类型 (Type),最小值(MinimumValue),最大值(MaximumValue),和出错提示信息(ErrorMessage) 属性.下面是代码示例?:? <asp:RangeValidator? ?ID="RangeValidator1"? ?Runat="server"? ?ErrorMessage="Invalid?range.?Number?must?be?between?0?and?255." ?ControlToValidate="rangeInput"? ?MaximumValue="255"? ?MinimumValue="0"?Type="Integer"?/> 如果你没使用
服务器控件,你可以将输入值转化成整型再进行验证来完成对数字的范围 验证.例如,要验证一个整数是否合法,使用 ASP.NET2.0 提供的新方法 Int32.TryParse 将
输入值转化为 System.Int32 的变量类型.这个方法会在转换失败时返回 false. Int32?i; if?(Int32.TryParse(txtInput.Text,?out?i)?==?false)
{ ? // Conversion?failed } 如果你使用早先的 ASP.NET 版本,可以在 try/catch 语句块中?使用 Int32.Parse 或者 Convert.ToInt32 方法并可以在转换失败时处理抛出的 FormatException 错误. 下面的示例代码
演示了如何验证来自 HTML 文本框的整数类型的类型和范围. <%@?Page?Language="C#"?%> <script?runat="server"> ?void?Page_Load(object?sender,?EventArgs?e) ? { ?if?(Request.RequestType?==?"POST") ? { ?int?i; ?if?(Int32.TryParse(Request.F orm["integerTxt"],?out?i)?==?true) ? { ? // TryParse?returns?true?if?the?conversion?succeeds ?if?((0?<=?i?&;&;?i?<=?255)?==?true) ? { ?Response.Write("Input?data?is?valid."); ?} ?else
?Response.Write("Input?data?is?out?of?range"); ?} ?else ?Response.Write("Input?data?is?not?an?integer"); ?} ?} ? </script> <html> ?<body> ?<form?id="form1"?action="NumericInput.aspx"?method="post"> ?<div> ?Enter?an?integer?between?0?and?255: ?<input?name="integerTxt"?type="text"?/> ?<input?name="Submit"?type="submit"?value="submit"?/> ?</div> ?</form> ?</body> </html> 验证日期字段 你需要验证日期字段是否是正确的类型.在大多数情况下,你也需要验证它们的范围,如 验证它们是否是将来或是过去的时间.如果你使用服务器控件来捕获一个日期输入值,同时你 希望这个值在一个特定的范围内,你可以使用范围验证控件(RangeValidator)并设置它允许 的类型为 Date 类型.这个控件允许你指定一个特殊的时间段通过设置起始的时刻.如果你需 要以今天的时间作为参照来验证,比如验证一个时间是在将来还是过去,你可以使用 CustomValidator 验证控件。
使 用 CustomValidator 控 件 来 验 证 一 个 日 期 需 要 设 置 ControlToValidate 和 ErrorMessage 属性,在 OnServerValidate 事件中指定一个自定义的验证逻辑方法.下面是示 例代码. <%@?Page?Language="C#"?%> <script?runat="server"> ?void?ValidateDateInFuture(object?source,?ServerValidateEventArgs?args) ? { ?DateTime?dt; ?
// Check?for?valid?date?and?that?the?date?is?in?the?future ?if?((DateTime.TryParse(args.Value,?out?dt)?==?false)?||? ?(dt?<=?DateTime.Today)) ? { ?args.IsValid?=?false; ?} ?} </script> <html> ?<body> ?<form?id="form1"?runat="server"> ?<div> ?<asp:Label?ID="Label1"?Runa