0

我想验证文本框的输入,因此它必须在方括号内包含六个(可选七个)字符。这可以出现在字符串中的任何位置,而不是整个字符串本身。有效输入示例:Hello World [XX1111]

我想出了以下正则表达式:\[.......?\]

但是,此表达式似乎不适用于 a RegularExpressionValidator

<asp:TextBox ID="txtTest" runat="server" />
<asp:RegularExpressionValidator ID="rfvTest" runat="server" ControlToValidate="txtTest" 
    ValidationExpression="\[.......?\]" ErrorMessage="Enter in the right format...">Enter in the right format</asp:RegularExpressionValidator>
<asp:Button ID="btnTest" runat="server" Text="test" />

即使是有效输入,也会导致显示错误,并且 的.IsValid属性为Page假。

有趣的是,以下 C# 代码将导致matchtrue带有文本Hello [XX1111]

            Regex r = new Regex(rfvTest.ValidationExpression);
            bool match = r.IsMatch(txtTest.Text);

所以:这里有什么。我相信表达式本身是正确的,它使用Regex类按预期进行验证,但RegularExpressionValidator不会验证输入。

4

1 回答 1

1

问题似乎是这个控件不幸地将输入锚的开头和结尾添加到您提交的正则表达式中(并且没有记录它这样做)......

这意味着你必须在你的正则表达式.*两边加上,是的。可以被视为一个错误...

于 2013-01-08T14:25:41.627 回答