JavaScriptでメールアドレスを検証する方法をわかりやすく解説
JavaScriptでメールアドレスの形式を検証するには、「@」と「.」(ドット) の位置関係をチェックするのが基本的な方法です。例えば「abc@gmail.com」のようなアドレスの場合、@が先頭以外に存在し、かつ@の後にドットが続いていることを確認します。
基本的な検証方法:indexOf と lastIndexOf を使う
文字列メソッドの indexOf() と lastIndexOf() を使えば、@とドットの位置を取得して簡単に検証できます。以下がそのサンプルコードです。
サンプルコード
<!DOCTYPE html>
<html>
<body>
<script>
var emailID;
function validateEmail(emailID) {
atpos = emailID.indexOf("@");
dotpos = emailID.lastIndexOf(".");
if (atpos < 1 || (dotpos - atpos < 2)) {
document.write("正しいメールアドレスを入力してください");
document.myForm.EMail.focus();
return false;
}
return true;
}
document.write(validateEmail("abc@gmail.com"));
</script>
</body>
</html>
コードの仕組み
この検証ロジックは以下の条件で動作します。
- atpos < 1:「@」が存在しない、または先頭(0番目)にある場合は不正なアドレスとして判定します。
- dotpos - atpos < 2:「@」の直後にドットがない場合も不正と判定します。つまり、@とドットの間に少なくとも1文字以上が必要です。
上記の例では「abc@gmail.com」を渡しているため、@は位置3にあり、最後のドットはそれより後ろに存在するため、true(検証成功)が返されます。
より厳密な検証には正規表現がおすすめ
上記のシンプルな方法では、全角文字や記号の混在など細かいケースまでは判定できません。実務では正規表現を使った検証が一般的です。
function validateEmail(email) {
const pattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return pattern.test(email);
}
console.log(validateEmail("abc@gmail.com")); // true
console.log(validateEmail("abc@@gmail")); // false
この正規表現は「@が1つあり、@の前後に空白を含まない文字列があり、さらにドット区切りのドメイン部分が存在する」という形式をチェックします。用途に応じて使い分けることで、より堅牢なバリデーションが実現できます。
-
スパマーはどうやってあなたのメールアドレスを突き止めるのか?知っておくべき5つの手法
スパムは、インターネット上における「疫病」とも呼べる存在です。誰であっても、いつか必ずスパムの標的となり、その厄介な被害に悩まされることになります。人々は何十年もの間スパムとの戦いを続けてきましたが、それでも今なお勢力は衰えていません。では、そもそもスパマーはどのようにしてあなたを見つけ出すのでしょうか? スパムの主な配信手段はメールです。論理的に考えれば、「スパマーにメールアドレスさえ知られなければ被害には遭わない」と思うかもしれません。しかし、現実はそう単純ではありません。スパマーたちは長年の試行錯誤の中で手法を洗練させており、実にさまざまな方法でメールアドレスを手に入れられるのです。 知
-
一時的なメールアドレスを作成する方法|Apple「メールを非公開」機能の使い方
「Bccアドレスフィールドを表示」を選ぶか、Option(Alt)+Command+Bを押すだけでBcc欄が表示されます。これで、他に誰へ送信したかが相手に知られない安心感が得られます。 しかし、今多くの人が知りたいのはおそらくそれではありません。現代のメールにおける最大の問題は、メールアドレスが悪意ある第三者の手に渡り、気づけば受信箱がスパムでいっぱいになっていることです。 受信箱に届くスパムやフィッシングメールを減らす最善の方法は、企業にむやみに自分のメールアドレスを渡さないことです。そうすることで、アドレスが流出・売却されたり、不正利用されたりするリスクを大幅に減らせます。 一時的なメー