C# で電子メールアドレスを検証する
このチュートリアルでは、C# で電子メールアドレスを検証する方法について説明します。
C# の MailAddress
クラスでメールアドレスを検証する
フォーマットのチェックについて最初に頭に浮かぶのは正規表現です。しかし、正規表現は比較的複雑であり、正規表現を学ぶには多くの時間が必要です。正規表現をすでに知っている場合は、それが最善のアプローチです。このチュートリアルでは、ユーザー定義のアプローチではなく、いくつかの事前定義された方法を使用して、C# で電子メールアドレスを検証します。MailAddress
クラスは、C# で電子メールアドレスを表すために使用されます。MailAddress
クラスのコンストラクターは文字列を受け取り、それを電子メールアドレスにフォーマットします。MailAddress
クラスを使用して、特定の電子メールアドレスが有効かどうかを判断できます。次のコード例は、C# の MailAddress
クラスを使用して電子メールアドレスを検証する方法を示しています。
using System;
namespace email_validation {
class Program {
static bool IsValidEmail(string email) {
try {
var addr = new System.Net.Mail.MailAddress(email);
return addr.Address == email;
} catch {
return false;
}
}
static void Main(string[] args) {
bool isOk = IsValidEmail("mma @gma.com");
Console.WriteLine(isOk);
}
}
}
出力:
false
電子メールアドレスを文字列として受け取り、電子メールが有効な場合は true
を返し、電子メールが無効
の場合は false を返す関数 IsValidEmail(email)
を定義しました。System.Net.Mail
名前空間内の MailAddress
クラスのコンストラクターを使用して、MailAddress
クラスの新しいインスタンスを作成しました。次に、MailAddress
クラスの Address
プロパティをメールアドレスと比較しました。Address
が E メールと一致する場合、E メールは有効
です。Address
が電子メールと一致しない場合、またはプロセス中に例外が発生した場合、電子メールは無効
です。
C# の EmailAddressAttribute
クラスでメールアドレスを検証する
EmailAddressAttribute
クラスは、C# で電子メールアドレスを検証するために使用されます。EmailAddressAttribute
クラスの IsValid(email)
関数は、email
が有効または null の場合は true
を返し、email
が無効の場合は false
を返します。次のコード例は、C# の EmailAddressAttribute
クラスを使用して、電子メールアドレスが有効か無効かを判断する方法を示しています。
using System;
using System.ComponentModel.DataAnnotations;
namespace email_validation {
class Program {
static bool validateEmail(string email) {
if (email == null) {
return false;
}
if (new EmailAddressAttribute().IsValid(email)) {
return true;
} else {
return false;
}
}
static void Main(string[] args) {
bool isOk = validateEmail("mma@gma.com");
Console.WriteLine(isOk);
}
}
}
出力:
true
メールアドレスを文字列パラメータとして受け取り、メールが有効な場合は true
を返し、無効な場合は false
を返す関数 validateEmail()
を作成しました。validateEmail()
関数は、email
が null
の場合、最初に false を返します。EmailAddressAttribute
クラスの新しいインスタンスを作成し、email
をパラメーターとして EmailAddressAttribute
クラスの IsValid()
関数に渡しました。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn