Java での電子メール検証

Siddharth Swami 2023年10月12日
Java での電子メール検証

電子メールを使用する前に、それを検証する必要があります。電子メールは、フォームの設計において重要な役割を果たします。Java の正規表現を使用して、電子メールを検証できます。java.util.regex パッケージをインポートして、Java の正規表現を処理します。

Java は、正規表現を使用して電子メールを検証するいくつかの方法を提供します。いくつかの正規表現パターンは、Java での電子メールの検証に役立ちます。

最初の方法は、最も単純な正規表現を使用することです。^(.+)@(.+)$ パターンは、電子メールの@記号をチェックする最も単純な式です。この方法では、シンボルの前後の文字は関係ありません。それは単にその電子メールに偽を与えるでしょう。

以下のコードは、上記の方法を示しています。

import java.util.*;
import java.util.regex.*;
public class Email_Validation {
  public static void main(String args[]) {
    ArrayList<String> email = new ArrayList<String>();
    email.add("example@domain.com");
    // Adding an invalid emails in list
    email.add("@helloworld.com");
    // Regular Expression
    String regx = "^(.+)@(.+)$";
    // Compile regular expression to get the pattern
    Pattern pattern = Pattern.compile(regx);
    // Iterate emails array list
    for (String email1 : email) {
      // Create instance of matcher
      Matcher matcher = pattern.matcher(email1);
      System.out.println(email1 + " : " + matcher.matches() + "\n");
    }
  }
}

出力:

example@domain.com : true

@helloworld.com : false

上記の例では、有効な電子メールと無効な電子メールを含む電子メールのリストを作成しました。matcher クラスを使用して、特定の電子メールがパターンに一致するかどうかをチェックするメソッドを作成します。

2 番目のパターンは、ユーザー名の部分メソッドに制限を追加するために使用されます。ここで、[A-Za-z0-9+_.-]+@(.+)$ は、電子メールの検証に使用される正規表現です。電子メールのユーザー名部分をチェックし、それに応じて電子メールを検証します。この方法にはいくつかの規則があります。ユーザー名には、A〜Z 文字、a〜z 文字、0〜9 の数字、ドット(.)、アンダースコア(_)を含めることができます。上記以外の文字を含むユーザー名は検証されません。

例えば、

import java.util.*;
import java.util.regex.*;
public class Email_Validation {
  public static void main(String args[]) {
    ArrayList<String> email = new ArrayList<String>();
    email.add("example@domain.com");
    email.add("example2@domain.com");
    // Adding an invalid emails in list
    email.add("@helloworld.com");
    email.add("12Bye#domain.com");
    // Regular Expression
    String regx = "^[A-Za-z0-9+_.-]+@(.+)$";
    // Compile regular expression to get the pattern
    Pattern pattern = Pattern.compile(regx);
    // Iterate emails array list
    for (String email1 : email) {
      // Create instance of matcher
      Matcher matcher = pattern.matcher(email1);
      System.out.println(email1 + " : " + matcher.matches() + "\n");
    }
  }
}

出力:

example@domain.com : true

example2@domain.com : true

@helloworld.com : false

12Bye#domain.com : false

電子メール検証の 3 番目のパターンは、RFC5322 メソッドで許可されています。^[a-zA-Z0-9_!#$%&'\*+/=?{|}~^.-]+@[a-zA-Z0-9.-]+$ は正規表現です電子メールの検証に使用される式。RFC によって電子メール形式で許可されているすべての文字が使用されます。

例えば、

import java.util.*;
import java.util.regex.*;
public class Email_Validation {
  public static void main(String args[]) {
    ArrayList<String> email = new ArrayList<String>();
    email.add("example@domain.com");
    email.add("exampletwo@domain.com");
    email.add("12@domain.com");
    // Adding an invalid emails in list
    email.add("@helloworld.com");
    // Regular Expression
    String regx = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$";
    // Compile regular expression to get the pattern
    Pattern pattern = Pattern.compile(regx);
    // Iterate emails array list
    for (String email1 : email) {
      // Create instance of matcher
      Matcher matcher = pattern.matcher(email1);
      System.out.println(email1 + " : " + matcher.matches() + "\n");
    }
  }
}

出力:

example@domain.com : true

exampletwo@domain.com : true

12@domain.com : true

@helloworld.com : false