存储正则表达式以在整个Web应用程序中使

时间:2016-09-07 16:50:29

标签: c# asp.net regex webforms

我有一个Web应用程序,其中包含许多带有文本框字段的表单,用于日期和URL等。

我正在使用<asp:RegularExpressionValidator>验证文本框内容,并想知道是否有一种方法可以集中存储我在web.config文件中使用的表达式,这样每次添加时我都可以轻松引用它们一个<asp:RegularExpressionValidator>,而不是必须输入整个正则表达式,即

正则表达式商店

string urlRegEx = "(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})"

网络表单

<asp:RegularExpressionValidator ValidationExpression=urlRegEx>
</asp:RegularExpressionValidator>

提前致谢

1 个答案:

答案 0 :(得分:1)

我通常在ASP.NET App_GlobalResources文件夹中创建一个Resources文件,以集中我的所有字符串常量,然后引用标记中的字符串。在本例中,我创建了一个RegexStrings.resx资源文件,并添加了一个键URL,其中包含一个包含正则表达式字符串的值:

<asp:TextBox ID="UrlTextBox" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="UrlRegEx" runat="server"     
                                ErrorMessage="Invalid url." 
                                ControlToValidate="UrlTextBox"     
                                ValidationExpression="<%$ Resources:RegexStrings, URL %>" />

有关详细信息,请参阅ASP.NET Web Page Resources Overview