目前我正在使用以下代码进行电子邮件验证,但是 它会验证 dsgf @ g 邮件ID,请帮助我
[Required(ErrorMessage = "Please Enter Email Id")]
[Display(Name = "Email-Id")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Cust_Email { get; set; }
答案 0 :(得分:2)
EmailAddress
属性会将dsgf@g
标记为有效,因为它是完全有效的电子邮件地址,因此该方法没有任何问题。例如,请考虑示例username@localhost
。
如果它不适合您,那么您可以使用正则表达式设置自己的规则进行验证。尝试使用' RegularExpression'属性,如:
[RegularExpression("^[^@\s]+@[^@\s]+(\.[^@\s]+)+$", ErrorMessage = "Invalid Email Address")]
public string Cust_Email { get; set; }
或
[RegularExpression(@"^([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})(\]?)$", ErrorMessage = "Invalid Email Address")]
public string Cust_Email { get; set; }
答案 1 :(得分:0)
电子邮件完全有效。
如果要验证,只需不要使用正则表达式进行验证。向他发送一个他必须输入的电子邮件地址的代码。电子邮件地址现在可以包含ä,ö,ü,à等字符......这可能真的难以匹配正确的字符... 如果你真的想用regex验证它,你可以采用RFC822标准: 你会在这里找到:http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html(玩得开心 - 不想发帖,太长了)
答案 2 :(得分:0)
扩展方法怎么样。
public static bool IsValidEmail(this string email)
{
bool rt = false;
try
{
var mail = new System.Net.Mail.MailAddress(email);
rt = mail.Host.Contains(".");
}
catch { }
return rt;
}