我想使用 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}$"
电子邮件只是我想重复使用字符串进行验证的一个例子,因此不想在我的 ASPX 中重复它。有没有办法做到这一点?