テキストボックスへの入力を検証したいので、角括弧内に 6 文字 (オプションで 7 文字) を含める必要があります。これは、文字列全体ではなく、文字列内のどこにでも表示できます。有効な入力例:Hello World [XX1111]
次の正規表現を思いつきました。\[.......?\]
ただし、この式は 内では機能しないようです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
が false になります。
興味深いことに、次の C# コードは(with text of )match
になります。true
Hello [XX1111]
Regex r = new Regex(rfvTest.ValidationExpression);
bool match = r.IsMatch(txtTest.Text);
だから:ここで何をしています。式自体は正しいと思います。Regex
クラスを使用して期待どおりに検証しますがRegularExpressionValidator
、入力を検証しません。