ASP.Net/Validation by Control/Regular Expression Validator

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

A valid 5 digit zip code

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <asp:TextBox ID="txtValue" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Submit" />&nbsp;
        <asp:RegularExpressionValidator 
        ControlToValidate="txtValue" 
        ErrorMessage="RegularExpressionValidator"
        SetFocusOnError=true
        ID="RegularExpressionValidator1" runat="server" 
        ValidationExpression="\d{5}(-\d{4})?">Please enter a valid 5 digit zip code</asp:RegularExpressionValidator>
    
    </div>
    </form>
</body>
</html>



Regular expression validator: ^\d{5}$|^\d{5}-\d{4}$ (VB.net)

<%@ Page Language="vb" %>
<html>
<head>
   <title>Validation Control Example</title>
    <script language="javascript">
    <!--
      function ClientValidate(source, arguments)
      {
         //alert(arguments.Value);
         var r, re;      //Declare variables.
         re = new RegExp(/^[1-9][0-9][0-9][0-9]$/);  //Create regular expression object.
         r = re.test(arguments.Value);  //Test for match.
         arguments.IsValid = r;    //Return results.
      }
   -->
   </script>
   <script runat="server">
      Sub Page_Load()
         vsSummary.DisplayMode = ValidationSummaryDisplayMode.List
      End Sub
      Sub ServerValidation (source As object, args As ServerValidateEventArgs)
         Dim RegExVal As New System.Text.RegularExpressions.Regex("^\d{4}$")
         If RegExVal.IsMatch(args.Value) Then
            args.IsValid = True
         Else
            args.IsValid = False
         End If
      End Sub
   </script>
</head>
<body>
   <h1>Validation Control Example</h1>
   <form runat="server">
      <asp:table id="MyTable" border="1" cellpadding="5" cellspacing="0" runat="server">
         <asp:tablerow runat="server">
            <asp:tablecell runat="server">
               RegularExpressionValidator Control:
               <br><br>
               Enter a valid 5 or 9-digit zip code
            </asp:tablecell>
            <asp:tablecell runat="server">
               <asp:textbox id="zipcode" runat="server"/><br>
               <asp:regularexpressionvalidator id="reZipCode"
                  controltovalidate="zipcode"
                  validationexpression="^\d{5}$|^\d{5}-\d{4}$"
                  errormessage="Not a valid Zip code!"
                  display="static"
                  runat="server"/>
            </asp:tablecell>
         </asp:tablerow>
         <asp:tablerow runat="server">
            <asp:tablecell runat="server">
               RequiredFieldValidator Control:
               <br><br>
               Enter a login name
            </asp:tablecell>
            <asp:tablecell runat="server">
               <asp:textbox id="login" runat="server"/><br>
               <asp:requiredfieldvalidator id="rfvLogin"
                  controltovalidate="login" 
                  display="static"
                  errormessage="Login cannot be blank!"
                  runat="server"/>
            </asp:tablecell>
         </asp:tablerow>

         <asp:tablerow runat="server">
            <asp:tablecell runat="server">
               ValidationSummary Control:
            </asp:tablecell>
            <asp:tablecell runat="server">
               <asp:validationsummary id="vsSummary"
                  displaymode="bulletlist" 
                  headertext="Page has the following errors: "
                  showsummary="true" 
                  showmessagebox="false"
                  runat="server"/>
            </asp:tablecell>
         </asp:tablerow>
         <asp:tablerow runat="server">
            <asp:tablecell colspan="2" runat="server">
               <asp:button text="submit" runat="server"/>
            </asp:tablecell>
         </asp:tablerow>
      </asp:table>
      <asp:label id="MyLabel" runat="server"/>
   </form>
</body>
</html>



Try validation based on Regular Expression in C#

<%@ Page language="c#" src="RegularExpressionTest.aspx.cs" AutoEventWireup="false" Inherits="RegularExpressionTest" %>
<HTML>
  <body>
    <form id="Form1" method="post" runat="server">
      <asp:textbox id="txtExpression" style="Z-INDEX: 104; LEFT: 224px; POSITION: absolute; TOP: 48px" runat="server" Height="24px" Width="192px"></asp:textbox><asp:button id="cmdSetExpression" style="Z-INDEX: 103; LEFT: 424px; POSITION: absolute; TOP: 48px" runat="server" Height="25px" Width="138px" Text="Set This Expression" CausesValidation="False"></asp:button><asp:label id="lblExpression" style="Z-INDEX: 105; LEFT: 24px; POSITION: absolute; TOP: 16px" runat="server" Height="21px" Width="512px" Font-Bold="True" Font-Size="X-Small" Font-Names="Verdana">Current Expression: (none)</asp:label><asp:label id="Label1" style="Z-INDEX: 106; LEFT: 88px; POSITION: absolute; TOP: 56px" runat="server" Font-Bold="True" Font-Size="X-Small" Font-Names="Verdana">New Expression:</asp:label>
      <DIV style="BORDER-RIGHT: 2px groove; BORDER-TOP: 2px groove; Z-INDEX: 110; LEFT: 16px; BORDER-LEFT: 2px groove; WIDTH: 584px; BORDER-BOTTOM: 2px groove; POSITION: absolute; TOP: 120px; HEIGHT: 160px; BACKGROUND-COLOR: lightyellow" ms_positioning="GridLayout"><asp:validationsummary id="ValidationSummary1" style="Z-INDEX: 111; LEFT: 192px; POSITION: absolute; TOP: 88px" runat="server" Font-Bold="True" Font-Size="X-Small" Font-Names="Verdana"></asp:validationsummary><asp:regularexpressionvalidator id="TestValidator" style="Z-INDEX: 111; LEFT: 208px; POSITION: absolute; TOP: 64px" runat="server" Font-Bold="True" Font-Size="X-Small" Font-Names="Verdana" EnableClientScript="False" ErrorMessage="Failed Validation" ControlToValidate="txtValidate"></asp:regularexpressionvalidator><asp:textbox id="txtValidate" style="Z-INDEX: 111; LEFT: 208px; POSITION: absolute; TOP: 24px" runat="server" Height="24px" Width="192px"></asp:textbox><asp:button id="cmdValidate" style="Z-INDEX: 111; LEFT: 408px; POSITION: absolute; TOP: 24px" runat="server" Height="24px" Width="139px" Text="Validate"></asp:button><asp:label id="Label2" style="Z-INDEX: 111; LEFT: 16px; POSITION: absolute; TOP: 32px" runat="server" Height="16px" Width="184px" Font-Bold="True" Font-Size="X-Small" Font-Names="Verdana">Test Current Expression:</asp:label></DIV>
    </form>
  </body>
</HTML>

<%--
using System;
using System.Collections;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
  public class RegularExpressionTest : System.Web.UI.Page
  {
    protected System.Web.UI.WebControls.TextBox txtExpression;
    protected System.Web.UI.WebControls.Button cmdSetExpression;
    protected System.Web.UI.WebControls.Label lblExpression;
    protected System.Web.UI.WebControls.Label Label1;
    protected System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
    protected System.Web.UI.WebControls.RegularExpressionValidator TestValidator;
    protected System.Web.UI.WebControls.TextBox txtValidate;
    protected System.Web.UI.WebControls.Button cmdValidate;
    protected System.Web.UI.WebControls.Label Label2;
  
    private void Page_Load(object sender, System.EventArgs e)
    {
      // Put user code to initialize the page here
    }
    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
      //
      // CODEGEN: This call is required by the ASP.NET Web Form Designer.
      //
      InitializeComponent();
      base.OnInit(e);
    }
    
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {    
      this.cmdSetExpression.Click += new System.EventHandler(this.cmdSetExpression_Click);
      this.Load += new System.EventHandler(this.Page_Load);
    }
    #endregion
    private void cmdSetExpression_Click(object sender, System.EventArgs e)
    {
      TestValidator.ValidationExpression = txtExpression.Text;
      lblExpression.Text = "Current Expression: ";
      lblExpression.Text += txtExpression.Text;
    }
  }

--%>



Using a RegularExpressionValidator Control to Prevent the Entry of a Special Character (VB.net)

<%@ Page Language=VB Debug=true %>
<HTML>
<HEAD>
<TITLE>Using a RegularExpressionValidator Control to Prevent the Entry of a Special Character</TITLE>
</HEAD>
<form runat="server">
<BR><BR>
Enter a value that does not include the " character:<BR>
<asp:textbox 
    id="txtValue" 
    runat=server 
/>
<asp:regularexpressionvalidator 
    id="regZipCode"
    controltovalidate="txtValue"
    validationexpression="[^"]*"
    display="Dynamic"
    font-name="Arial" 
    font-size="11"
    runat=server
>
    You must not use the " character.
</asp:regularexpressionvalidator>
<BR><BR>
<asp:button 
    id="butOK"
    text="OK"
    type="Submit"
    runat="server"
/>
</form>
</BODY>
</HTML>



Validate input of US SSN

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label5" 
                   runat="server" 
                   Font-Bold="True" 
                   Font-Size="Large" 
                   Text="ASP.NET Validators"/>
        <asp:Label ID="Label1" 
                   runat="server" 
                   Font-Bold="True" 
                   Text="Required Field:"/>
        <asp:TextBox ID="txtRequiredField" 
                     runat="server">Name</asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" 
                                    runat="server" 
                                    ControlToValidate="txtRequiredField"
                                    ErrorMessage="No data." 
                                    InitialValue="Please enter your name"/>
        <asp:Label ID="Label2" 
                   runat="server" 
                   Font-Bold="True" 
                   Text="Range 0 - 100:"/>
        <asp:TextBox ID="txtRange" runat="server"/>
        <asp:RangeValidator ID="RangeValidator1" 
                            runat="server" 
                            ControlToValidate="txtRange"
                            ErrorMessage="Should be between 0 and 100." 
                            MaximumValue="100" 
                            MinimumValue="0"
                            Type="Integer"/>
         <asp:Label ID="Label3" 
                    runat="server" 
                    Font-Bold="True" 
                    Text="Regular Expression:"/>
         <asp:TextBox ID="txtRegExp" runat="server"></asp:TextBox>
         <asp:RegularExpressionValidator 
                    ID="RegularExpressionValidator1" 
                    runat="server" 
                    ControlToValidate="txtRegExp"
                    ErrorMessage="Please enter a valid US SSN." 
                    ValidationExpression="\d{3}-\d{2}-\d{4}"/>
         <asp:Label ID="Label4" 
                    runat="server" 
                    Font-Bold="True" 
                    Text="Value < 20"/>
         <asp:TextBox ID="txtComparison" runat="server"></asp:TextBox>
         <asp:CompareValidator 
                    ID="CompareValidator1" 
                    runat="server" 
                    ControlToValidate="txtComparison"
                    ErrorMessage="Enter a value less than 20." 
                    Operator="LessThan" 
                    ValueToCompare="20"/>
         <asp:Button ID="btnPostback" runat="server" OnClick="btnPostback_Click" Text="Post back" />
         <asp:Label ID="lblValidationComplete" runat="server"/>
    </div>
    </form>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page 
{
    protected void btnPostback_Click(object sender, EventArgs e)
    {
        lblValidationComplete.Text = "You passed validation!";
    }
}