2013-08-01 105 views
1

我有一个很难找出如何处理这种情况.. 我有一个RegExpValidator控件,采用正则表达式作为属性值(这是在我的标记/ HTML代码).. 和这个正则表达式包含'和“..然后当然会造成相当多的困惑.Net编译器和浏览器的HTML引擎mostroust以及.. 所以。 。我的问题是..有没有在html /标记中使用像这样的正则表达式?ASP.net WebForms正则表达式验证控件,验证表达式与“和”

下面是当前的代码:

<MyCustomControl:RegularExpressionValidator Runat="server" ID="EmailRegExpValidator" ResourceID="UserAdministration.EmailRegularExpressionValidator" ControlToValidate="EmailTextBox" ValidationExpression="^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$" Display="Dynamic"/> 

控制是最有可能不是定制..和一些如何继承默认正则表达式验证。

在此先感谢!

回答

0

由于值端被双引号包围,因此不能在值中使用双引号。但是,您可以使用该值内的双引号\x22的Unicode等价物。

所以你ValidationExpression属性值会看起来像:

ValidationExpression="^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|\x22((?=[\x01-\x7f])[^\x22\\]|\\[\x01-\x7f])*\x22\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|\x22((?=[\x01-\x7f])[^\x22\\]|\\[\x01-\x7f])*\x22)@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$" 
+1

啊哈!非常感谢! :) – Inx