asp:RegularExpressionValidatorコントロールを使用して、いくつかのテキストボックスを検証したいと思います。一部のテキストボックスにはメールアドレスが含まれています。異なるテキストボックスごとに、RegularExpressionValidatorの属性で同じ正規表現を繰り返したくありません。したがって、コードビハインドで式を定数として定義します
Const regEmail As String = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$"
同様に、私はこのようにエラーメッセージを定義します。
const regEmailMsg = "Email address does not appear to be valid."
ただし、動作するASPXページのRegularExpressionValidatorコントロールにこれらの文字列を含める方法が見つかりません。有効な式には無効のフラグが付けられます。追加の失敗として、ValidatorCalloutExtenderが表示されますが、その中央のセクションがありません。エラーメッセージは表示されません。テキストボックスとバリデーターの例を次に示します。
<asp:TextBox ID="txtIndividualEmail" runat="server" Width = "200"></asp:TextBox>
<asp:RegularExpressionValidator ID="revIndividualEmail" runat="server" ErrorMessage="<% =regEmailMsg %>" Display="None"
ControlToValidate="txtIndividualEmail" ValidationExpression="<% =regEmail %>" > </asp:RegularExpressionValidator>
<cc1:ValidatorCalloutExtender ID="vceIndividualEmail" runat="server"
Enabled="True" TargetControlID="revIndividualEmail" HighlightCssClass="validatorCalloutHighlight">
</cc1:ValidatorCalloutExtender>
文字列をASPXに直接含めると、すべてが正常に機能します。
<asp:RegularExpressionValidator ID="revIndividualEmail" runat="server" ErrorMessage="Email address does not appear to be valid." Display="None"
ControlToValidate="txtIndividualEmail" ValidationExpression="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$"
電子メールは、検証のために文字列を再利用したい場合の1つの例にすぎないため、ASPXで文字列を繰り返したくありません。これを行う方法はありますか?