我想验证文本框的输入,因此它必须在方括号内包含六个(可选七个)字符。这可以出现在字符串中的任何位置,而不是整个字符串本身。有效输入示例: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# 代码将导致match
(true
带有文本Hello [XX1111]
)
Regex r = new Regex(rfvTest.ValidationExpression);
bool match = r.IsMatch(txtTest.Text);
所以:这里有什么。我相信表达式本身是正确的,它使用Regex
类按预期进行验证,但RegularExpressionValidator
不会验证输入。