我有以下正则表达式用于电子邮件验证:
private const string ValidEmailRegexPattern = @"^(?:[^@\s\\(),:;<>[\]""]+|(?:(?:^|\.)""(?:[^\r\\"";]|(?:\\[\\""]))*"")+)+(?<=^.{1,64})@[^\s~!@#$%^&*()=+_{}\|;,`'""?<>]{1,256}$";
public static bool IsValidEmail(string email)
{
return !string.IsNullOrWhiteSpace(email) && ValidEmailRegex.IsMatch(email);
}
但是当输入是有效的电子邮件时它会冻结,但最大有效长度(254个符号)如下:
"123...@gmail.com"
- 254
个符号,包括244
个数字和@gmail.com
。
如何更改我的正则表达式?我希望我的程序可以处理这种类型的电子邮件地址。
答案 0 :(得分:4)
您可以使用MailAddress类来验证电子邮件,而不是使用正则表达式对其进行验证。
MailAddress m = new MailAddress(email);
来自MSDN
而不是使用正则表达式来验证电子邮件地址, 您可以使用 System.Net.Mail.MailAddress 类。确定 电子邮件地址是否有效,请将电子邮件地址传递给 MailAddress.MailAddress(String)类构造函数。