次の方法で共有


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>

参照

RegularExpressionValidator クラス | 検証サーバー コントロール | 正規表現の概説