ホームページ ウェブフロントエンド jsチュートリアル 正規表現を使用してメールアドレス/メールアドレスをフィルタリングする

正規表現を使用してメールアドレス/メールアドレスをフィルタリングする

May 24, 2018 am 10:13 AM
email 表現 郵便

今回は、正規表現を使用してメールボックス/メールアドレスをフィルタリングするときの注意事項と、正規表現を使用してメールボックス/メールアドレスをフィルタリングする場合の

注意事項をいくつか紹介します。以下は実際的なケースです。

ユーザー登録を行う際、メールアドレス・メールアドレスの正規表現がよく使われます。この記事では、プロジェクトの状況に応じて最適なソリューションを選択できます

ユーザーを登録する際には、メール/メールアドレスの正規表現がよく使用されます。この記事にはいくつかのオプションがリストされており、プロジェクトの状況に応じて最適なオプションを選択できます。

正規表現を使用してメールアドレス/メールアドレスをフィルタリングするオプション 1 (一般的に使用されます)

ルールは次のように定義されています:

大文字 [A-Z]、小文字 [a-z]、数字 [0-9]、アンダースコア [_] を使用します。 、マイナス記号 [-] とピリオド [.] で始まり、1 回以上繰り返す必要があります [+]。
  • は真ん中に@記号を含める必要があります。
  • @は、大文字[A-Z]、小文字[a-z]、数字[0-9]、アンダースコア[_]、マイナス記号[-]、ピリオド[.]で接続し、繰り返す必要があります。多くても 1 回 [+]。
  • 末尾は2~4桁の大文字と小文字[A-Za-z]{2,4}を繋いだピリオド[.]でなければなりません。
  • 上記のルールを使用して、次の正規表現を指定します:
var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
ログイン後にコピー
完全なテスト コード

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title>
</head>
<body>
<p id="main"></p>
<script>
  var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  w("pattern.test(&#39;cn42du@163.com&#39;) = "+pattern.test(&#39;cn42du@163.com&#39;)+";");
  w("pattern.test(&#39;ifat3@sina.com.cn&#39;) = "+pattern.test(&#39;ifat3@sina.com.cn&#39;)+";");
  w("pattern.test(&#39;ifat3.it@163.com&#39;) = "+pattern.test(&#39;ifat3.it@163.com&#39;)+";");
  w("pattern.test(&#39;ifat3_-.@42du.cn&#39;) = "+pattern.test(&#39;ifat3_-.@42du.cn&#39;)+";");
  w("pattern.test(&#39;ifat3@42du.online&#39;) = "+pattern.test(&#39;ifat3@42du.online&#39;)+";");
  w("pattern.test(&#39;毛三胖@42du.cn&#39;) = "+pattern.test(&#39;毛三胖@42du.cn&#39;)+";");
  function w(val) {
    document.getElementById("main").innerHTML += val +"<br />";
  }
</script>
</body>
</html>
ログイン後にコピー

テスト結果:

pattern.test(&#39;cn42du@163.com&#39;) = true;
pattern.test(&#39;ifat3@sina.com.cn&#39;) = true;
pattern.test(&#39;ifat3.it@163.com&#39;) = true;
pattern.test(&#39;ifat3_-.@42du.cn&#39;) = true;
pattern.test(&#39;ifat3@42du.online&#39;) = false;
pattern.test(&#39;毛三胖@42du.cn&#39;) = false;
pattern.test(&#39;cn42du@163.com&#39;) = true;
pattern.test(&#39;ifat3@sina.com.cn&#39;) = true;
pattern.test(&#39;ifat3.it@163.com&#39;) = true;
pattern.test(&#39;ifat3_-.@42du.cn&#39;) = true;
pattern.test(&#39;ifat3@42du.online&#39;) = false;
pattern.test(&#39;毛三胖@42du.cn&#39;) = false;
ログイン後にコピー

スキーム 1 の説明

オプション 1 は、最も一般的に使用されるメール正規表現検証スキームです。 、ほとんどのアプリケーション シナリオにも適しています。上記のテストからわかるように、この式は .online および .store で終わるドメイン名をサポートしていません。このタイプのドメイン名 (4 桁を超える) と互換性を持たせる必要がある場合は、正規表現 {2,4} の最後の制限部分を調整するだけです (例: {2,8})。もう 1 つの問題は、電子メールのユーザー名に漢字を含めることができないことです。

オプション 2 (改訂されたオプション 1)

ルールは次のように補足されます:

ユーザー名には中国語 [u4e00-u9fa5] を含めることができます
  • ドメイン名は最大 8 桁の数字で終わることができます{ 2,8}
  • 更新された正規表現は次のとおりです:
  • var pattern = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
    ログイン後にコピー

    完全なテストコード
  • <!DOCTYPE HTML>
    <html>
    <head>
      <meta charset="utf-8">
      <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title>
    </head>
    <body>
    <p id="main"></p>
    <script>
      var pattern = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
      w("pattern.test(&#39;cn42du@163.com&#39;) = "+pattern.test(&#39;cn42du@163.com&#39;)+";");
      w("pattern.test(&#39;ifat3@sina.com.cn&#39;) = "+pattern.test(&#39;ifat3@sina.com.cn&#39;)+";");
      w("pattern.test(&#39;ifat3.it@163.com&#39;) = "+pattern.test(&#39;ifat3.it@163.com&#39;)+";");
      w("pattern.test(&#39;ifat3_-.@42du.cn&#39;) = "+pattern.test(&#39;ifat3_-.@42du.cn&#39;)+";");
      w("pattern.test(&#39;ifat3@42du.online&#39;) = "+pattern.test(&#39;ifat3@42du.online&#39;)+";");
      w("pattern.test(&#39;毛三胖@42du.cn&#39;) = "+pattern.test(&#39;毛三胖@42du.cn&#39;)+";");
      function w(val) {
        document.getElementById("main").innerHTML += val +"<br />";
      }
    </script>
    </body>
    </html>
    ログイン後にコピー
テスト結果:

pattern.test(&#39;cn42du@163.com&#39;) = true;
pattern.test(&#39;ifat3@sina.com.cn&#39;) = true;
pattern.test(&#39;ifat3.it@163.com&#39;) = true;
pattern.test(&#39;ifat3_-.@42du.cn&#39;) = true;
pattern.test(&#39;ifat3@42du.online&#39;) = true;
pattern.test(&#39;毛三胖@42du.cn&#39;) = true;
ログイン後にコピー

オプション3 (安全)

携帯電話の確認コードが表示される前に、ほぼ メール認証

が保証されています。これがユーザーの一意性の唯一の条件です。一時メールボックス (10 分メールボックスまたは使い捨てメールボックスとも呼ばれる) の出現により、メールボックスの検証とアカウントのアクティベーションのメカニズムが無意味になってしまいました。一時的な電子メール アドレスのアドレスは列挙できません。ホワイトリストを使用して、限られた数の電子メール ドメイン名のみが検証に合格できるようにすることしかできません。

プラン 1 の次の追加ルールに従います:

電子メールのドメイン名は 163.com、qq.com、または 42du.cn のみにすることができます。

正規表現は次のように指定されます:

var pattern = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|42du.cn)$/;
ログイン後にコピー

完全なテストコード

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title>
</head>
<body>
<p id="main"></p>
<script>
  var pattern = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|42du.cn)$/;
  w("pattern.test(&#39;cn42du@163.com&#39;) = "+pattern.test(&#39;cn42du@163.com&#39;)+";");
  w("pattern.test(&#39;ifat3@sina.com.cn&#39;) = "+pattern.test(&#39;ifat3@sina.com.cn&#39;)+";");
  w("pattern.test(&#39;ifat3.it@163.com&#39;) = "+pattern.test(&#39;ifat3.it@163.com&#39;)+";");
  w("pattern.test(&#39;ifat3_-.@42du.cn&#39;) = "+pattern.test(&#39;ifat3_-.@42du.cn&#39;)+";");
  w("pattern.test(&#39;ifat3@42du.online&#39;) = "+pattern.test(&#39;ifat3@42du.online&#39;)+";");
  w("pattern.test(&#39;毛三胖dd@42du.cn&#39;) = "+pattern.test(&#39;毛三胖@42du.cn&#39;)+";");
  function w(val) {
    document.getElementById("main").innerHTML += val +"<br />";
  }
</script>
</body>
</html>
ログイン後にコピー

テスト結果:

pattern.test(&#39;cn42du@163.com&#39;) = true;
pattern.test(&#39;ifat3@sina.com.cn&#39;) = false;
pattern.test(&#39;ifat3.it@163.com&#39;) = true;
pattern.test(&#39;ifat3_-.@42du.cn&#39;) = true;
pattern.test(&#39;ifat3@42du.online&#39;) = false;
pattern.test(&#39;毛三胖dd@42du.cn&#39;) = false;
ログイン後にコピー

スキーム 3 の検証によりセキュリティは確保できますが、ホワイトリストが長すぎると、パターン

string

が長すぎます。このとき、電子メール ドメイン名のホワイトリストを配列として記述し、予備検証に正規表現を使用し、ドメイン名の二次検証にホワイトリストを使用できます。

メール認証機能は次のようになります:

var isEmail = function (val) {
  var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  var domains= ["qq.com","163.com","vip.163.com","263.net","yeah.net","sohu.com","sina.cn","sina.com","eyou.com","gmail.com","hotmail.com","42du.cn"];
  if(pattern.test(val)) {
    var domain = val.substring(val.indexOf("@")+1);
    for(var i = 0; i< domains.length; i++) {
      if(domain == domains[i]) {
        return true;
      }
    }
  }
  return false;
}
// 输出 true
isEmail(cn42du@163.com);
ログイン後にコピー

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

フォーム入力コンポーネントに Vue.js カスタム イベントを使用する方法


Vue が次の表を使用して配列を変更するときにページがレンダリングされない場合に対処する方法

以上が正規表現を使用してメールアドレス/メールアドレスをフィルタリングするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

gate.io登録チュートリアル gate.io登録チュートリアル Mar 31, 2025 pm 11:09 PM

この記事では、公式ウェブサイトへのアクセスから登録の完了までのすべてのステップをカバーする詳細なgate.io登録チュートリアルを提供します。登録情報の記入、検証、ユーザー契約の読み取りなどを説明します。この記事では、登録の成功後、レアルネーム認証を完了した後のセキュリティ対策を強調し、初心者からのヒントを提供して、デジタルアセットの交通旅を開始するためのヒントを提供します。

セサミオープンドアエクスチェンジウェブページログイン最新バージョンgateio公式ウェブサイトの入り口 セサミオープンドアエクスチェンジウェブページログイン最新バージョンgateio公式ウェブサイトの入り口 Mar 04, 2025 pm 11:48 PM

ログインステップやパスワード回復プロセスなど、セサミオープンエクスチェンジWebバージョンのログイン操作の詳細な紹介も、ログイン障害、ページを開くことができず、プラットフォームにスムーズにログインするのに役立つ検証コードを受信できません。

初心者向けのgate.io最新の登録チュートリアル 初心者向けのgate.io最新の登録チュートリアル Mar 31, 2025 pm 11:12 PM

この記事では、初心者に詳細なgate.io登録チュートリアルを提供し、公式ウェブサイトへのアクセス、情報、身元確認などを埋めるなど、登録プロセスを徐々に完了するように導き、登録後のセキュリティ設定を強調します。さらに、この記事は、Binance、Ouyi、Sesame Open Doorなどの他の交換についても言及しました。初心者は自分のニーズに応じて適切なプラットフォームを選択し、デジタル資産への投資がリスクがあり、合理的に投資する必要があることを読者に思い出させることをお勧めします。

Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Mar 31, 2025 pm 11:48 PM

Laravelの電子メールの検証コードの送信の障害を処理する方法は、Laravelを使用することです...

OKX OUYI公式ウェブサイト登録ポータル2025 OKX OUYI公式ウェブサイト登録ポータル2025 Mar 04, 2025 pm 11:45 PM

OKX OUYIは、主要な暗号通貨取引プラットフォームです。この記事では、OKX OUYIの公式Webサイトアカウントを登録する方法についてガイドするための詳細な手順を説明します。公式ウェブサイトにアクセスする方法、登録方法を選択し、必要な情報を入力し、登録プロセスを完了する方法を学びます。この記事には、実際の個人情報を使用したり、強力なパスワードを設定することの重要性など、予防措置に関する情報も含まれています。

Gateio Exchangeアプリ古いバージョンGateio Exchangeアプリ古いバージョンダウンロードチャネル Gateio Exchangeアプリ古いバージョンGateio Exchangeアプリ古いバージョンダウンロードチャネル Mar 04, 2025 pm 11:36 PM

Gateio Exchangeアプリは、公式のサードパーティのアプリケーション市場、フォーラムコミュニティ、その他のチャネルをカバーする古いバージョン用のチャネルをダウンロードします。また、古いバージョンを簡単に取得し、新しいバージョンやデバイスの互換性を使用する際の不快感を解決するのに役立ちます。

Bitget公式Webサイトで最新のアプリを登録およびダウンロードする方法 Bitget公式Webサイトで最新のアプリを登録およびダウンロードする方法 Mar 05, 2025 am 07:54 AM

このガイドは、AndroidおよびiOSシステムに適した公式Bitget Exchangeアプリの詳細なダウンロードとインストール手順を提供します。このガイドは、公式ウェブサイト、App Store、Google Playなど、複数の権威ある情報源からの情報を統合し、ダウンロードおよびアカウント管理中の考慮事項を強調しています。ユーザーは、App Store、公式WebサイトAPKダウンロード、公式Webサイトジャンプ、完全な登録、ID検証、セキュリティ設定など、公式チャネルからアプリをダウンロードできます。さらに、ガイドはよくある質問や考慮事項をカバーします。

Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Apr 01, 2025 pm 02:45 PM

Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...

See all articles