C#代码验证电子邮件地址

15 浏览
0 Comments

C#代码验证电子邮件地址

最优雅的代码是用来验证字符串是否为有效的电子邮件地址?

0
0 Comments

问题的出现原因:在给定的代码中,通过使用EmailAddressAttribute类来验证电子邮件地址的有效性。但是,当尝试执行此代码时,出现了“'Data Annotations' does not exist...are you missing an assembly reference?"的错误信息。这是因为该代码需要引用System.ComponentModel.DataAnnotations程序集。

解决方法:为了解决此问题,需要添加对System.ComponentModel.DataAnnotations程序集的引用。可以通过在项目中添加对该程序集的引用来实现。

0
0 Comments

C#代码用于验证电子邮件地址的问题是出现的原因和解决方法。问题的原因是之前找到的所有答案都没有使用内置的功能来验证电子邮件地址。解决方法是使用C#的System.ComponentModel.DataAnnotations命名空间中的[EmailAddress]注解来验证电子邮件地址。下面是一个使用该注解的示例代码:

using System.ComponentModel.DataAnnotations;
class ValidateSomeEmails
{
    static void Main(string[] args)
    {
        var email = new EmailAddressAttribute();
        email.IsValid("someone.com");         //true
        email.IsValid("someone.co.uk");       //true
        email.IsValid("someone+tag.net");     //true
        email.IsValid("futureTLD.fooo");      //true
        email.IsValid("fdsa");                          //false
        email.IsValid("fdsa@");                         //false
        email.IsValid("fdsa");                     //false
        email.IsValid("fdsa.");                    //false
        //one-liner
        if (new EmailAddressAttribute().IsValid("someone.com")) 
            return true;
    }
}

这段代码使用EmailAddressAttribute验证了一些电子邮件地址,并返回了验证结果。该方法可以在.Net 4.5 / MVC 4中使用,并且能够确保在代码中使用与视图模型中的[EmailAddress]相同的验证逻辑。

需要注意的是,EmailAddressAttribute不如System.Net.Mail.MailAddress宽容。如果需要尽可能宽容地验证电子邮件地址,请使用MailAddress。

此外,有人指出,.NET Core实现与.NET Framework实现非常不同,后者只检查"@"字符,这可能导致一些问题。因此,在使用.NET Core时需要注意这种差异。

0
0 Comments

C#代码验证电子邮件地址的原因是确保输入的字符串是否符合电子邮件地址的格式要求。这个问题的解决方法是使用MailAddress类来尝试解析输入的字符串,如果解析成功并且解析后的地址与原始字符串相同,则返回true。如果解析失败或者解析后的地址与原始字符串不同,则返回false。

该代码还做了一些额外的处理,比如修剪输入字符串的前后空格,检查字符串是否以点结尾。这些处理是为了避免一些特殊情况下的错误结果。

文章中还提到了一些关于电子邮件地址的补充信息,比如电子邮件地址的有效形式可以是非常宽松的,包括一些非常不寻常的形式。对于大多数使用情况来说,将一个有效的地址错误地认为是无效的要比将一个无效的地址错误地认为是有效的更糟糕。

然后文章指出了使用异常处理来进行业务逻辑的问题,但在这种情况下,异常处理的方便性和清晰性可能超过了原则上的问题。此外,即使不使用这个具体的函数,你可能仍然希望使用相同的模式来处理电子邮件地址。

最后,文章给出了一些相关的文档和进一步阅读的链接,以便读者可以深入了解电子邮件地址验证的更多细节。

0