如何使用c#在自定义验证器中包含正则表达式

时间:2011-09-20 21:54:05

标签: asp.net regex validation

我正在使用自定义验证器,因此我可以设置文本框的样式。但是,我不确定如何验证电子邮件地址 - 可能使用正则表达式?这是我正在努力改编的代码:

protected void CustomValidatorBillEmail_ServerValidate(object sender, ServerValidateEventArgs args)
    {
        bool is_valid = txtBillingEmail.Text != "";
        txtBillingEmail.BackColor = is_valid ? System.Drawing.Color.White : System.Drawing.Color.LightPink;
        args.IsValid = is_valid;
    }

任何帮助,一如既往,将不胜感激。

2 个答案:

答案 0 :(得分:2)

这是我的解决方案:

protected void CustomValidatorBillEmail_ServerValidate(object sender, ServerValidateEventArgs args)
    {
        string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
         @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
         @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";

        Regex regex = new Regex(strRegex);

        bool is_valid = false;

        if (regex.IsMatch(txtBillingEmail.Text))
        { 
            is_valid = true; 
        }

        txtBillingEmail.BackColor = is_valid ? System.Drawing.Color.White : System.Drawing.Color.LightPink;
        args.IsValid = is_valid;
    }

可以改进吗?需要学习!!

答案 1 :(得分:1)

.Net框架附带一个RegEx类(System.Text.RegularExpressions),然后您将提供一个正则表达式来验证网络上有100个版本的电子邮件。