JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

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つあり、@の前後に空白を含まない文字列があり、さらにドット区切りのドメイン部分が存在する」という形式をチェックします。用途に応じて使い分けることで、より堅牢なバリデーションが実現できます。

  1. スパマーはどうやってあなたのメールアドレスを突き止めるのか?知っておくべき5つの手法

    スパムは、インターネット上における「疫病」とも呼べる存在です。誰であっても、いつか必ずスパムの標的となり、その厄介な被害に悩まされることになります。人々は何十年もの間スパムとの戦いを続けてきましたが、それでも今なお勢力は衰えていません。では、そもそもスパマーはどのようにしてあなたを見つけ出すのでしょうか? スパムの主な配信手段はメールです。論理的に考えれば、「スパマーにメールアドレスさえ知られなければ被害には遭わない」と思うかもしれません。しかし、現実はそう単純ではありません。スパマーたちは長年の試行錯誤の中で手法を洗練させており、実にさまざまな方法でメールアドレスを手に入れられるのです。 知

  2. 一時的なメールアドレスを作成する方法|Apple「メールを非公開」機能の使い方

    「Bccアドレスフィールドを表示」を選ぶか、Option(Alt)+Command+Bを押すだけでBcc欄が表示されます。これで、他に誰へ送信したかが相手に知られない安心感が得られます。 しかし、今多くの人が知りたいのはおそらくそれではありません。現代のメールにおける最大の問題は、メールアドレスが悪意ある第三者の手に渡り、気づけば受信箱がスパムでいっぱいになっていることです。 受信箱に届くスパムやフィッシングメールを減らす最善の方法は、企業にむやみに自分のメールアドレスを渡さないことです。そうすることで、アドレスが流出・売却されたり、不正利用されたりするリスクを大幅に減らせます。 一時的なメー