在我的ASP.NET Web窗体中,我有一个多行TextBox
,应使用RegularExpression Validator进行验证。文本框应包含一个或多个字符串“a”(只是'a'char,没有别的)。
到目前为止,我为RegularExpressionValidator
对象提供了这些正则表达式:
(?m:(^a$)+)
(?m:\A(^a$)+\Z)
(?m:^a$)
和其他一些人。两者都不起作用。猜猜有一些基本的我还没有到来。
你可以告诉我我哪里错了吗?这是涉及的代码。
一个按钮(仅用于回发):
<asp:Button ID="Button1" runat="server" Text="Button" />
TextBox:
<asp:TextBox ID="TextBox1" runat="server" Rows="10" TextMode="MultiLine"></asp:TextBox>
正则表达式验证器:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="TextBox1" ErrorMessage="RegularExpressionValidator"
ValidationExpression="(?m:(^a$)+)"></asp:RegularExpressionValidator>
该Web表单上没有其他内容。我只添加了那些控件和修改过的属性。我甚至使用VS GUI做了所有这些。
使用CustomValidator并在其中执行Regex.Match(TextBox1, @"(?m:(^a$)+)")
工作正常。我猜测RegularExpressionValidator出了点问题。
答案 0 :(得分:0)
如果你想匹配多行,不要忘记也匹配行终止符;它们并未隐含在$
。
(?m:(^a$\r?\n?)+)
可能会更好。
匹配
a
或
a
a
a
等
而且,既然你要求教程,那么regular-expressions.info怎么样?