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