正则表达式多行验证器

时间:2010-02-23 20:23:16

标签: asp.net regex validation multiline

在我的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出了点问题。

1 个答案:

答案 0 :(得分:0)

如果你想匹配多行,不要忘记也匹配行终止符;它们并未隐含在$

(?m:(^a$\r?\n?)+)

可能会更好。

匹配

a

a
a
a

而且,既然你要求教程,那么regular-expressions.info怎么样?