RegularExpressionValidator.EvaluateIsValid Method ()
.NET Framework (current version)
Indicates whether the value in the input control is valid.
Assembly: System.Web (in System.Web.dll)
The following code example demonstrates how to override the EvaluateIsValid method in a custom server control so that it always checks the value against the expression for a match in a RegularExpressionValidator.
Security Note
|
|---|
This example has a text box that accepts user input, which is a potential security threat. By default, ASP.NET Web pages validate that user input does not include script or HTML elements. For more information, see Script Exploits Overview. |
using System.Web; using System.Security.Permissions; namespace Samples.AspNet.CS.Controls { [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class CustomRegularExpressionValidatorEvaluateIsValid : System.Web.UI.WebControls.RegularExpressionValidator { protected override bool EvaluateIsValid() { // Get the control to validate's validation value string controlValue = GetControlValidationValue(this.ControlToValidate); // If the value is null or empty, then return true if (controlValue == null || controlValue.Trim().Length == 0) { return true; } else { // Else try running the Regular Expression against the value // and see if there is a match. try { System.Text.RegularExpressions.Match regExpMatch = System.Text.RegularExpressions.Regex.Match(controlValue, this.ValidationExpression); return(regExpMatch.Success && regExpMatch.Index == 0 && regExpMatch.Length == controlValue.Length); } catch { return true; } } } } }
The following code example demonstrates how to use the CustomRegularExpressionValidatorEvaluateIsValid control, defined in the preceding example, on a Web Forms page.
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS" %> <%@ Page Language="C#" AutoEventWireup="True" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Custom RegularExpressionValidator - EvaluateIsValid - C# Example</title> <script runat="server"> void Button1_Click(Object sender, EventArgs e) { if (Page.IsValid) { Label1.Text = "Page is valid."; } else { Label1.Text = "Page is invalid!"; } } </script> </head> <body> <form id="Form1" method="post" runat="server"> <h3>Custom RegularExpressionValidator - EvaluateIsValid - C# Example</h3> <table style="background-color:#eeeeee; padding:10"> <tr valign="top"> <td colspan="3"> <asp:Label ID="Label1" Text="Enter a 5 digit zip code" runat="server"/> </td> </tr> <tr> <td colspan="3"> <b>Personal Information</b> </td> </tr> <tr> <td align="right"> Zip Code: </td> <td> <asp:TextBox id="TextBox1" runat="server"/> </td> <td> <aspSample:CustomRegularExpressionValidatorEvaluateIsValid id="Regularexpressionvalidator1" runat="server" ControlToValidate="TextBox1" ValidationExpression="\d{5}" ErrorMessage="Zip code must be 5 numeric digits" Display="Static" EnableClientScript="False" /> </td> </tr> <tr> <td></td> <td> <asp:Button text="Button1" OnClick="Button1_Click" runat="server" ID="Button1"/> </td> <td></td> </tr> </table> </form> </body> </html>
.NET Framework
Available since 1.1
Available since 1.1
Show:
