Có vài cách validate email address trong C#.
- System.Net.Mail - Namespace chứa classes gửi email qua SMTP server.
- System.Text.RegularExpressions - Biểu diễn regular expression bất biến.
Sử dụng biểu thức dưới đây:
@"^([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})(\]?)$"
Cách 1: Dùng MailAddress class (System.Net.Mail)
using System;
using System.Net.Mail;
namespace DemoApplication
{
class Program
{
public static void Main()
{
try
{
string email = "hello@xyzcom";
Console.WriteLine($"Email: {email}");
var mail = new MailAddress(email);
bool isValidEmail = mail.Host.Contains(".");
if (!isValidEmail)
{
Console.WriteLine("Email không hợp lệ");
}
else
{
Console.WriteLine("Email hợp lệ");
}
Console.ReadLine();
}
catch (Exception)
{
Console.WriteLine("Email không hợp lệ");
Console.ReadLine();
}
}
}
}
Kết quả
Email: hello@xyzcom Email không hợp lệ
Cách 2: Dùng Regex
using System;
using System.Text.RegularExpressions;
namespace DemoApplication
{
public class Program
{
public static void Main()
{
string email = "hello@xyz.com";
Regex regex = new Regex(@"^([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})(\]?)$",
RegexOptions.CultureInvariant | RegexOptions.Singleline);
Console.WriteLine($"Email: {email}");
bool isValidEmail = regex.IsMatch(email);
if (!isValidEmail)
{
Console.WriteLine("Email không hợp lệ");
}
else
{
Console.WriteLine("Email hợp lệ");
}
Console.ReadLine();
}
}
}
Kết quả
Email: hello@xyz.com Email hợp lệ