タイトルの通りです!
Visualforce画面でメールを入力してレコードに保存した際にメール形式ではない場合、「無効なメールアドレスです!」と独自エラーが出てしまうので回避するため作成しました!
正規表現を使用したメール形式チェック
List<String> mailList = new List<String>();
// 正常
mailList.add('abc.def@efg.com');
mailList.add('ABC.DEF@EFG.COM');
// 異常
mailList.add('メールだよ');
mailList.add('maildayo');
for(String mail : mailList){
if(Pattern.matches('^[A-Z0-9._%+-/!#$%&\'*=?^_`{|}~]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$', mail.toUpperCase())){
System.Debug('★★ 正常なメールアドレス : ' + mail);
}else{
System.Debug('★★ 異常なメールアドレス : ' + mail);
}
}
デバッグ
参考にしたサイト様
Stringクラス
→toUpperCaseメソッドを使用しています。
Patternクラス
→matchesメソッドを使用しています。
数式を作成してメールアドレスが有効な形式であることを確認する
→ほぼこちらに記載していた正規表現を使用しています。
エスケープシーケンス
→上記の正規表現の場合、だとApexで使用できないので回避のため使用しています。