ASP.NET自定义验证电子邮件

时间:2015-06-21 11:31:05

标签: c# asp.net validation customvalidator custom-validators

对于我的学校考试,我们必须验证电子邮件地址,但不允许使用RegularExpressionValidator 。我试图用自定义验证器解决这个问题,但我无法弄明白。 (电子邮件输入位于文本框中(tb_email)。

我试图像这样解决它:

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        if (tb_email.Text ==  \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* )
        {
            args.IsValid = true;
        } 
        else
        {
            args.IsValid = false;
        }
    }
想到这样的事情:

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        if (tb_email.Text != "")
        {
            string filter = \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*; 
            args.IsValid = true;
        } 
        else
        {
            args.IsValid = false;
        }
    }

我收到大量错误,我无法弄清楚如何做到这一点。我做了很多搜索,但我只找到了答案:只使用Java中的正则表达式验证器或代码解决方案(我还没有学到)。 我真的很感激一个好的答案!感谢

1 个答案:

答案 0 :(得分:0)

你可以使用没有REgularExpressionValidator的正则表达式吗?如果是这样的话:

using System;
using System.Text.RegularExpressions;

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
    if (tb_email.Text != "")
    {
        string filter = \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*; 

       Regex regex = new Regex(filter );
   Match match = regex.Match(tb_email.Text );
    if (match.Success)
    {
         args.IsValid=true; }
        else
        {
         args.IsValid = false;  

  } 
}

在客户端(javascript)看到这篇文章:

Validating email addresses using jQuery and regex