RegularExpressionValidatorコントロール
RegularExpressionValidatorは、TextBoxなどから入力したデータの内容をチェックするときに使用します。チェックするデータのパターンは、ValidationExpressionプロパティに設定します。RegularExpressionValidatorは、メールアドレス、パスワード、郵便番号、電話番号などの形式をチェックするときに利用すると便利です。
書式:
<mobile:RegularExpressionValidator id=”String” runat=”server”
ControlToValidate=”String”
Display=”{None|Static|Dynamic}”
ErrorMessage=”String”
Text=”String”
ValidationExpression=”String”>
</mobile:RegularExpressionValidator>
● RegularExpressionValidatorをテストするサンプル


図 RegularExpressionValidatorをテストするサンプル
このサンプルは、RegularExpressionValidatorをテストします。Validation ExpressionのSelectionList(DropDown)には、メール宛先、パスワード、郵便番号、電話番号の形式をチェックする書式(Expression)が格納されています。SelectionListからアイテムを選択したらToValidateのTextBoxにテストデータを入力してテストボタンを選択します。テストデータの形式が不正なときは、エラーメッセージが表示されます。
サンプルの行22-30では、Validation Expressionの SelectionList(DropDown)を定義しています。行25-29では、<Item>タグでメール宛先、パスワード、郵便番号、電話番号の書式(Expression)を定義しています。
22: <mobile:SelectionList id="slstExpression"
runat="server"
23: StyleReference="List"
Wrapping="NoWrap"
24:
SelectType="DropDown">
25: <Item Text="パターン 選択" Value="" />
26: <Item Text="メール宛先" Value="\S+@\S+\.\S{2,3}" />
27: <Item Text="パスワード" Value="[a-zA-Z]+\w*\d+\w*" />
28: <Item Text="郵便番号" Value="(\d{3})-(\d{4})" />
29: <Item Text="電話番号" Value="(\d{1,4})-(\d{1,4})-(\d{1,4})" />
30: </mobile:SelectionList>
行34では、ToValidateのTextBoxを定義しています。ここで定義したTextBoxには、テストデータを入力します。行35-40では、RegularExpressionValidatorを定義しています。行38では、ControlToValidateプロパティにToValidateのTextBoxのIDを設定しています。これでTextBoxにRegularExpressionValidatorが適用されます。
34: <mobile:TextBox id="txtToValidate" runat="server"
/>
35: <mobile:RegularExpressionValidator
36: id="valRegularExpression" runat="server"
37: StyleReference="Validator"
38: ControlToValidate="txtToValidate"
39: Display="Dynamic"
40: ErrorMessage="テストデータが不正です!" />
テストボタンを選択すると、フォームがポストバックされてCommandのOnClickイベントに制御が渡ります。このイベントの行9-10では、Validation ExpressionのSelectionListから選択したアイテム(MobileListItem)のValueプロパティから書式(Expression)を取得してRegularExpressionValidatorのValidationExpressionプロパティに設定しています。たとえば、SelectionListから「メール宛先」を選択したときは、ValidationExpressionに「\S+@\S+\.\S{2,3}」が設定されます。
行11では、RegularExpressionValidatorのValidate()メソッドでTextBoxに入力したテストデータを診断しています。行12-14では、MobilePageクラスのIsValidプロパティを参照して診断結果を調べています。エラーがないときは、ActiveFormプロパティにfrmResultフォームを設定して「OK!」を表示します。エラーを検出したときは、カレントページにエラーメッセージが表示されます。
8: Sub cmdTest_Click(s As Object, e As
EventArgs)
9:
valRegularExpression.ValidationExpression = _
10:
slstExpression.Selection.Value
11: valRegularExpression.Validate()
12: If IsValid Then
13: ActiveForm = frmResult
14: End If
15: End Sub