RegularExpressionValidator コントロール
入力コントロール内の値を評価し、その値が、正規表現で定義されているパターンと一致するかどうかを確認します。
<asp:RegularExpressionValidator
id="ProgrammaticID"
ControlToValidate="ProgrammaticID of control to validate"
ValidationExpression="expression"
ErrorMessage="Message to display in ValidationSummary control"
Text="Message to display in control"
ForeColor="value"
BackColor="value" ...
runat="server" >
</asp: RegularExpressionValidator>
解説
RegularExpressionValidator コントロールは、入力コントロール内の値が、正規表現で定義されているパターンと一致するかどうかを確認するために使用します。この種類の検証によって、社会保障番号、電子メール アドレス、電話番号、郵便番号など、決められている一連の文字に対する確認を行うことができます。
メモ 入力コントロールが空の場合、検証関数は呼び出されず、そのまま検証が成功します。ユーザーが入力コントロールへの入力を省略しないようにする場合は、RequiredFieldValidator コントロールを使用します。
ブラウザがクライアント側での検証をサポートしていない場合や、クライアント側での検証が明示的に無効に設定されている場合 (EnableClientScript プロパティが false に設定されている場合) を除いて、サーバー側とクライアント側の両方の検証が実行されます。
ValidationExpression プロパティを使用して、入力コントロールを検証するために使用する正規表現を指定します。正規表現による検証の構文は、クライアント上とサーバー上とで少し異なります。クライアント上の検証については、JScript の正規表現構文を使用します。サーバー上の検証については、Regex の構文を使用します。JScript の正規表現構文は Regex の構文のサブセットであるため、クライアントとサーバーの両方で同じ結果が得られるように、JScript の正規表現構文を使用することをお勧めします。
正規表現の作成と書式の詳細については、「正規表現の概説」を参照してください。
RegularExpressionValidator コントロールの詳細については、RegularExpressionValidator クラスのトピックを参照してください。
例
RegularExpressionValidator コントロールを使用して、テキスト ボックスに入力された値が、指定したパターンと一致するかどうかを検証する方法を次の例に示します。この例では、パターンは 5 桁の郵便番号です。検証後に、その結果がページに表示されます。
<%@ 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 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-Name="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 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 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-Name="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 text="Validate"
OnClick="ValidateBtn_Click"
runat="server"/>
</td>
<td></td>
</tr>
</table>
</form>
</body>
</html>