1

我在弄清楚如何处理这种情况时遇到了一些麻烦。我有一个 RegExpValidator 控件,它将一个正则表达式作为属性的值(这是在我的标记/html代码中)。这个正则表达式同时包含'和" ..这当然会给.Net编译器和浏览器html引擎带来很多混乱..所以..我的问题是..无论如何在html /中使用这样的正则表达式标记?

这是当前代码:

<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"/>

该控件很可能不是那种自定义的..并且有些继承了默认的正则表达式验证器。

提前致谢!

4

1 回答 1

0

因为值侧被双引号包围,所以不能在值内使用双引号。但是,您可以在值内使用双引号的 unicode 等效项\x22

因此,您的 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)>)$"
于 2013-08-01T12:10:49.853 回答