ASP.NET 検証コントールのホームへ戻る

RegularExpressionValidatorの使い方

 

   RegularExpressionValidatorをテストするサンプル

 

RegularExpressionValidatorをテストするサンプル

 

このサンプルは、RegularExpressionValidatorコントロールをテストします。Validation ExpressionDropDownListには、メールアドレス、パスワード、ホームページのURLなどの形式をチェックす Validation Expressionが格納されています。DropDownListからアイテムを選択すると、TextBoxValidation Expressionが表示されます。たとえば、郵便番号を選択すると(\d{3})-(\d{4})のようなValidation Expressionが表示されます。Test DataTextBoxには、テストデータを入力します。テストボタンをクリックすると、テストデータの形式がチェックされて結果が表示されます。

 

このサンプルでは、以下のノウハウを習得することができます。

 

  RegularExpressionValidatorコントロールの使い方

  RegularExpressionValidator ValidationExpressionプロパティをランタイム時に設定する方法

  RegularExpressionValidator Validate()メソッドの使い方

  PageクラスのIsValidプロパティの使い方

  メールアドレス、パスワード、URL、郵便番号、電話番号の形式をチェックする書式(Regular Expression)

 

サンプルの行35-48では、DropDownListRegularExpressionValidatorValidation Expressionを定義しています。ListItemTextプロパティには、Validation Expressionの種類を設定しています。Valueプロパティには、Validation Expressionを設定しています。行36では、OnSelectedIndexChangedイベントを登録しています。このイベントは、DropDownListからアイテムを選択すると発生します。行38では、AutoPostBackプロパティにTrueを設定してアイテムを選択したときにポストバックされるようにしています。

 

35:     <asp:DropDownList id="dropValidationExpression" runat="server"
 36:       OnSelectedIndexChanged="dropValidationExpression_SelectedIndexChanged"
 38:       AutoPostBack="True">
 39:       <asp:ListItem Text="Validation Expression
を選択してください!" Value="" />
 40:       <asp:ListItem Text="
メールアドレスの形式 (test@hotmail.com)" Value="\S+@\S+\.\S{2,3}" />
           :::

47:       <asp:ListItem Text="時間の形式 (8am, 8 am, 8:00 am, 8:00am)" ::: />

48:     </asp:DropDownList>

DropDownListOnSelectedIndexChangedイベントでは、SelectedItem.Valueプロパティに格納されている値をValidation ExpressionTextBoxTextプロパティに設定しています。SelectedItem.Valueプロパティには、DropDownListから選択したアイテムのValidation Expressionが格納されています。

 

11: Sub dropValidationExpression_SelectedIndexChanged(s As Object, e As EventArgs)
 12:   txtValidationExpression.Text = dropValidationExpression.SelectedItem.Value
 13: End Sub

 

 

53-54では、DropDownListから選択したValidation Expressionを表示するTextBoxを定義しています。このTextBoxに表示されたValidation Expressionは、上書きすることができます。行66-67では、Test DataTextBoxを定義しています。

 

53:     <asp:TextBox id="txtValidationExpression" runat="server"
 54:       Width="300px" />

::::
 66:     <asp:TextBox id="txtTestData" runat="server"
 67:       Width="300px" />

76-78では、テストボタンを定義しています。テストボタンにはOnClickイベントを登録しています。このイベントでは、テストデータをチェックして結果を表示します。行80-84では、RegularExpressionValidatorを定義しています。行81では、EnableClientScriptプロパティにFalseを設定していWebサーバ側でエラーチェックするようにしています。行82では、ControlToValidateプロパティにTest DataTextBoxIDを設定しています。ControlToValidateには、エラーチェックの対象となるコントロールのIDを設定します。行84では、Textプロパティにエラーメッセージを設定しています。RegularExpressionValidatorValidationExpressionプロパティには、ランタイム時にDropDownListから選択したValidation Expressionを設定します。

 

テストボタンをクリックするとページがポストバックされてPage_Load(), OnClick()イベントの順に制御が渡ります。

 

76: <asp:Button id="btnSubmit" runat="server"
 77:   OnClick="btnSubmit_Click"
 78:   Text="
テスト" />
     ::::

80: <asp:RegularExpressionValidator id="valRegularExpression" runat="server"
 81:   EnableClientScript="False"
 82:   ControlToValidate="txtTestData"
 83:   Display="Dynamic"
 84:   Text="<hr>NG -
テストデータが不正です!" />

 

Page_Load()イベントでは、RegularExpressionValidatorValidationExpressionプロパティにValidation ExpressionTextBoxTextプロパティを設定しています。TextBoxTextプロパティには、DropDownListから選択したValidation Expressionが格納されています。

 

  4: Sub Page_Load()
  5:   lblMessage.Text = String.Empty
  6:   If IsPostBack Then
  7:     valRegularExpression.ValidationExpression = txtValidationExpression.Text
  8:   End If
  9: End Sub

 

OnClick()イベントでは、RegularExpressionValidatorValidate()メソッドでテストデータをチェックしています。PageクラスのIsValidプロパティでは、エラーの有無を調べてエラーが無いときは、LabelTextプロパティに「OK」を設定して表示しています。

 

15: Sub btnSubmit_Click(s As Object, e As EventArgs)
 16:   valRegularExpression.Validate()
 17:   If IsValid Then
 18:     lblMessage.Text = "<hr>OK"
 19:   End If
 20: End Sub

ASP.NET 検証コントールのホームへ戻る