方法 : ASP.NET サーバー コントロールのパターンに対して検証する
更新 : 2007 年 11 月
ユーザーの入力が電話番号、郵便番号、電子メール アドレスなど、定義済みのパターンに一致することをチェックできます。これには、正規表現を使用します。正規表現の詳細については、「.NET Framework の正規表現」を参照してください。
セキュリティに関するメモ : |
---|
既定では、ASP.NET Web ページは、悪意のあるユーザーがアプリケーションにスクリプトまたは HTML 要素を送信しようとしていないかどうかを自動的に検証します。詳細については、「スクリプトによる攻略の概要」を参照してください。 |
正規表現を使用して検証するには
RegularExpressionValidator コントロールをページに追加し、次のプロパティを設定します。
プロパティ
説明
正当性をチェックしているコントロールの ID。
検証が不合格だった場合に表示される 1 つ以上のエラーのテキストと位置を指定するプロパティ。詳細については、「方法 : ASP.NET サーバー コントロールに対する検証エラー メッセージの表示を制御する」を参照してください。
ValidationExpression プロパティを正規表現に設定することにより、比較するパターンを設定します。
メモ : Visual Studio .NET 2005 などのビジュアルなデザイナを使用している場合は、RegularExpressionValidator コントロールから定義済みのパターンを選択できます。
複数のパターンを有効にする場合は、それぞれの表現の間を縦線 (|) で区切ります。
メモ : クライアント側検証では、正規表現は ECMAScript (JavaScript) を使用して評価されます。これは、サーバー側での正規表現チェックと細かい点でわずかに異なります。
ASP.NET Web ページ コードにテストを追加して、有効性を確認します。詳細については、「方法 : ASP.NET サーバー コントロールの有効性をプログラムでテストする」を参照してください。
RegularExpressionValidator コントロールを使用して、ユーザーが有効なアメリカ合衆国郵便番号を入力したどうかをチェックするコード例を次に示します。この検証コントロールは、2 つのパターンをチェックします。1 つは、5 桁の数字であり、もう 1 つは、5 桁の数字の後にハイフンが続き、さらに 4 桁の数字が続くパターンです。
ZIP: <asp:TextBox id="txtZIP" runat="SERVER"></asp:TextBox> <asp:RegularExpressionValidator id="txtZIP_validation" runat="SERVER" ControlToValidate="txtZIP" ErrorMessage="Enter a valid US ZIP code." ValidationExpression="\d{5}(-\d{4})?"> </asp:RegularExpressionValidator>
ZIP: <asp:TextBox id="txtZIP" runat="SERVER"></asp:TextBox> <asp:RegularExpressionValidator id="txtZIP_validation" runat="SERVER" ControlToValidate="txtZIP" ErrorMessage="Enter a valid US ZIP code." ValidationExpression="\d{5}(-\d{4})?"> </asp:RegularExpressionValidator>