閱讀此文請先查看網頁教學網的:ASP.NET入門教程:Validation服務器控件,簡單講述了Web服務器控件的使用方法。
RegularExpressionValidator 控件用於驗證輸入值是否匹配正則表達式指定的模式。計算輸入控件的值,以確定該值是否與某個正則表達式所定義的模式相匹配。
注釋:除非浏覽器不支持客戶端驗證或 EnableClientScript 被設置為 false,否則將同時執行服務器端和客戶端驗證。
注釋:如果輸入控件為空,驗證將失敗。請使用 RequiredFieldValidator 控件,使字段成為必選字段。
合法的值有:
當驗證失敗時,在 ValidationSummary 控件中顯示的文本。
注釋:如果未設置 Text 屬性,文本也會顯示在該驗證控件中。
ForeColor 該控件的前景色。 id 控件的唯一 id。 IsValid 布爾值,指示關聯的輸入控件是否通過驗證。 runat 規定該控件是一個服務器控件。必須設置為 "server"。 Text 當驗證失敗時顯示的消息。 ValidationExpression 規定驗證輸入控件的正則表達式。在客戶端和服務器上,表達式的語法是不同的。<asp:RegularExpressionValidator
AccessKey="string"
AssociatedControlID="string"
BackColor="color name|#dddddd"
BorderColor="color name|#dddddd"
BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|Ridge|
Inset|Outset"
BorderWidth="size"
ControlToValidate="string"
CssClass="string"
Display="None|Static|Dynamic"
EnableClientScript="True|False"
Enabled="True|False"
EnableTheming="True|False"
EnableViewState="True|False"
ErrorMessage="string"
Font-Bold="True|False"
Font-Italic="True|False"
Font-Names="string"
Font-Overline="True|False"
Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
Large|X-Large|XX-Large"
Font-Strikeout="True|False"
Font-Underline="True|False"
ForeColor="color name|#dddddd"
Height="size"
ID="string"
OnDataBinding="DataBinding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="Unload event handler"
runat="server"
SetFocusOnError="True|False"
SkinID="string"
Style="string"
TabIndex="integer"
Text="string"
ToolTip="string"
ValidationExpression="string"
ValidationGroup="string"
Visible="True|False"
Width="size"
/>
備注:RegularExpressionValidator 控件用於確定輸入控件的值是否與某個正則表達式所定義的模式相匹配。通過這種類型的驗證,可以檢查可預知的字符序列,如身份證號碼、電子郵件地址、電話號碼、郵政編碼等中的字符序列。
注意:如果輸入控件為空,則不調用任何驗證函數且驗證成功。使用 RequiredFieldValidator 控件防止用戶跳過某個輸入控件。
除非浏覽器不支持客戶端驗證,或者顯式禁用客戶端驗證(EnableClientScript 屬性設置為 false),否則服務器端驗證和客戶端驗證都要執行。
使用 ValidationExpression 屬性指定用於驗證輸入控件的正則表達式。客戶端的正則表達式驗證語法和服務器端略有不同。在客戶端,使用的是 JScript 正則表達式語法。而在服務器端使用的則是 Regex 語法。由於 JScript 正則表達式語法是 Regex 語法的子集,所以最好使用 JScript 正則表達式語法,以便在客戶端和服務器端得到同樣的結果。
下面的代碼示例演示如何使用 RegularExpressionValidator 控件來驗證輸入到文本框中的值是否為特定模式。在此例中,該模式為 5 位數字的郵政編碼。驗證結果隨後顯示在頁上。
Visual Basic
<%@ Page Language="VB" AutoEventWireup="True" %>
<html>
<head>
<script runat="server">
Sub ValidateBtn_Click(sender As Object, e As EventArgs)
If Page.IsValid Then
lblOutput.Text = "Page is Valid!"
Else
lblOutput.Text = "Page is InValid!"
End If
End Sub
</script>
</head>
<body>
<h3>RegularExpressionValidator Sample</h3>
<p>
<form id="Form1" runat="server">
<table bgcolor="#eeeeee" cellpadding="10">
<tr valign="top">
<td colspan="3">
<asp:Label id="lblOutput"
Text="Enter a 5 digit zip code"
Font-Names="Verdana"
Font-Size="10pt"
runat="server"/>
</td>
</tr>
<tr>
<td colspan="3">
<font <b>Personal Information</b>
</td>
</tr>
<tr>
<td align="right">
Zip Code:
</td>
<td>
<asp:TextBox id="TextBox1"
runat="server"/>
</td>
<td>
<asp:RegularExpressionValidator id="RegularExpressionValidator1"
ControlToValidate="TextBox1"
ValidationExpression="\d{5}"
Display="Static"
EnableClientScript="false"
ErrorMessage="Zip code must be 5 numeric digits"
runat="server"/>
</td>
</tr>
<tr>
<td></td>
<td>
<asp:Button ID="Button1" text="Validate"
OnClick="ValidateBtn_Click"
runat="server"/>
</td>
<td></td>
</tr>
</table>
</form>
</body>
</html>
C#
<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>
<script runat="server">
void ValidateBtn_Click(Object sender, EventArgs e)
{
if (Page.IsValid)
{
lblOutput.Text = "Page is Valid!";
}
else
{
lblOutput.Text = "Page is InValid!";
}
}
</script>
</head>
<body>
<h3>RegularExpressionValidator Sample</h3>
<p>
<form id="Form1" runat="server">
<table bgcolor="#eeeeee" cellpadding="10">
<tr valign="top">
<td colspan="3">
<asp:Label id="lblOutput"
Text="Enter a 5 digit zip code"
Font-Names="Verdana"
Font-Size="10pt"
runat="server"/>
</td>
</tr>
<tr>
<td colspan="3">
<font <b>Personal Information</b>
</td>
</tr>
<tr>
<td align="right">
Zip Code:
</td>
<td>
<asp:TextBox id="TextBox1"
runat="server"/>
</td>
<td>
<asp:RegularExpressionValidator id="RegularExpressionValidator1"
ControlToValidate="TextBox1"
ValidationExpression="\d{5}"
Display="Static"
EnableClientScript="false"
ErrorMessage="Zip code must be 5 numeric digits"
runat="server"/>
</td>
</tr>
<tr>
<td></td>
<td>
<asp:Button ID="Button1" text="Validate"
OnClick="ValidateBtn_Click"
runat="server"/>
</td>
<td></td>
</tr>
</table>
</form>
</body>
</html>