如何在ASP.NET Web窗体中使用多个正则表达式正则表达式验证器

时间:2015-09-08 12:55:38

标签: c# asp.net

我需要针对多个正则表达式验证一些控件的输入如何使用一个正则表达式验证器控件来执行此操作。

3 个答案:

答案 0 :(得分:1)

没有办法。您需要为要测试的每个正则表达式使用正则表达式验证器。

答案 1 :(得分:0)

尝试使用OR运算符构建正则表达式。有关它的更多信息,请查看此链接:

http://forums.asp.net/t/1213089.aspx?Multiple+Format+in+Regular+Expression+Validator https://msdn.microsoft.com/en-us/library/aa976858(v=vs.71).aspx

如果无法根据您的需要调整和构建正则表达式,您可以使用自定义验证器并为您可能需要的每个正则表达式进行所有验证。有关自定义验证程序的详细信息,请查看此link

答案 2 :(得分:0)

我认为你问题的唯一解决方案是使用自定义验证器。检查下面的代码。这只是为了让你了解如何使用自定义验证器。

<asp:TextBox runat="server" ID="UserName" />                            
<asp:CustomValidator ID="CustomValidator1" runat="server" 
ControlToValidate="UserName" ></asp:CustomValidator>

protected void ValidateUser(object source, ServerValidateEventArgs args)
        {
            Regex regx = new Regex("^[a-zA-Z0-9]{6,}$");
            Regex regx2 = new Regex("^[a-zA-Z0-9]{6,}$");
            if (regx.IsMatch(UserName.Text) == false)
            {
                CustomValidator1.ErrorMessage = "error message";
                args.IsValid = false;
            }
            else if(regx2.IsMatch(UserName.Text) == false) 
            {
                CustomValidator1.ErrorMessage = "second error message";
                args.IsValid = false;
            }
          else
           {args.IsValid = true;}
       }