在ASP.NET中使用ASP:RegularExpressionValidator控件时出现的问题

本文关键字:ASP 问题 控件 NET RegularExpressionValidator | 更新日期: 2023-09-27 18:23:52

我写了一些代码,用ASP.NET检查输入字符串是否符合C#中给定的正则表达式。这里有问题的控件是ASP:RegularExpressionValidator控件。问题是,我有一个正则表达式,根据它来检查输入字符串的有效性,如果输入字符串无效,就会弹出一条错误消息。这是我尝试的C#代码:

protected void Validate_Click(object sender, EventArgs e)
        {
            Match expression = Regex.Match(getString.Text, validator.ValidationExpression);
            bool matchSuccess = expression.Success;
            if (matchSuccess)
                match.Text = "Match success";
            else
                match.Text = "Match fail";
        }

这是我的ASP网页表单的代码:

<div style="font-family:'Segoe UI'">
        <asp:TextBox ID="getString" runat="server" Width="300"/>
        <asp:RegularExpressionValidator ID="validator" runat="server" ValidationExpression="ADMIN.[A-Z]{1,5}|[0-9]{1,10}" ControlToValidate="getString" ErrorMessage="does not conform to expression" />
        <asp:Button ID="Validate" runat="server" Text="Validate" OnClick="Validate_Click" />
        <asp:Label ID="match" runat="server" />
    </div>

现在的问题是,当我单击"验证"按钮时,它应该显示字符串符合正则表达式并且匹配成功,或者字符串不符合正则表达式而匹配失败。

但我的页面显示匹配成功,同时显示ASP:RegularExpressionValidator控件的错误消息。

我该如何解决这个问题?

在ASP.NET中使用ASP:RegularExpressionValidator控件时出现的问题

您可以删除Validate_Click函数中的代码(不要忘记从按钮中删除OnClick事件处理程序)。RegularExpressionValidator将自动处理文本框验证,无需额外的代码要求。