ASP.Net/Validation by Control/Regular Expression Validator
Версия от 15:30, 26 мая 2010; (обсуждение)
Содержание
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" />
<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!";
}
}