Heim > Web-Frontend > js-Tutorial > Hauptteil

Implementierung der regelmäßigen Filterung von JS-E-Mail-Postfächern/E-Mail-Adressen

php中世界最好的语言
Freigeben: 2018-05-25 09:58:41
Original
2186 Leute haben es durchsucht

Dieses Mal werde ich Ihnen die Implementierung der regelmäßigen Filterung von JS-E-Mail-Postfächern/E-Mail-Adressen vorstellen. Was sind die Vorsichtsmaßnahmen für die regelmäßige Filterung von JS-E-Mail-Postfächern/E-Mail-Adressen? .

Kurz gesagt

Bei der Benutzerregistrierung wird häufig der reguläre Ausdruck der E-Mail/E-Mail-Adresse verwendet. In diesem Artikel werden mehrere Optionen aufgeführt. Sie können je nach Projektsituation die am besten geeignete Option auswählen.

Implementierung der regelmäßigen Filterung von JS-E-Mail-Postfächern/E-Mail-Adressen

Option 1 (häufig verwendet)

Die Regeln sind wie folgt definiert:

  • in Großbuchstaben Es beginnt mit Buchstaben [A-Z], Kleinbuchstaben [a-z], Zahlen [0-9], Unterstrich [_], Minuszeichen [-] und Punkt [.] und muss einmal oder mehrmals wiederholt werden mal [+].

  • muss das @-Symbol in der Mitte enthalten.

  • @ müssen Großbuchstaben [A-Z], Kleinbuchstaben [a-z], Zahlen [0-9], Unterstrich [_], Minuszeichen [-] und Punkt [ folgen .] und muss ein- oder mehrmals wiederholt werden [+].

  • muss mit einem Punkt [.] enden, der 2 bis 4 Ziffern von Groß- und Kleinbuchstaben [A-Za-z]{2,4} verbindet.

Verwenden Sie die oben genannten Regeln, um den folgenden regulären Ausdruck zu erhalten:

var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
Nach dem Login kopieren

Vollständiger Testcode

nbsp;HTML>


  <meta>
  <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title>


<p></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>

Nach dem Login kopieren

Testergebnis:

pattern.test('cn42du@163.com') = true;
pattern.test('ifat3@sina.com.cn') = true;
pattern.test('ifat3.it@163 . com') = true;
pattern.test('ifat3_-.@42du.cn') = true;
pattern.test('ifat3@42du.online') = false;
pattern. test ('Mao Sanpang@42du.cn') = false;
pattern.test('cn42du@163.com') = true;
pattern.test('ifat3@sina.com.cn') = true;
pattern.test('ifat3.it@163.com') = true;
pattern.test('ifat3_-.@42du.cn') = true;
pattern.test(' ifat3@42du.online') = false;
pattern.test('Mao Sanpang@42du.cn') = false;

Anleitung für Option 1

Schema 1 ist das am häufigsten verwendete E-Mail-Überprüfungsschema für reguläre Ausdrücke und eignet sich für die meisten Anwendungsszenarien. Wie aus dem obigen Test hervorgeht, unterstützt dieser Ausdruck keine Domänennamen, die auf .online und .store enden. Wenn Sie mit dieser Art von Domainnamen (mehr als 4 Ziffern) kompatibel sein müssen, passen Sie einfach den Einschränkungsteil am Ende des regulären Ausdrucks {2,4} an (zum Beispiel: {2,8}). Ein weiteres Problem besteht darin, dass E-Mail-Benutzernamen keine chinesischen Zeichen enthalten dürfen.

Option 2 (überarbeitete Option 1)

Die Regeln werden wie folgt ergänzt:

  • Benutzernamen können Chinesisch enthalten [u4e00 -u9fa5 ]

  • Das Ende des Domainnamens kann bis zu 8 Zeichen lang sein {2,8}

  • Der aktualisierte reguläre Ausdruck lautet wie folgt folgt:

var pattern = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
Nach dem Login kopieren

Vollständiger Testcode

nbsp;HTML>


  <meta>
  <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title>


<p></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>

Nach dem Login kopieren

Testergebnis:

pattern.test('cn42du@163.com') = true;
pattern .test('ifat3@sina.com.cn') = true;
pattern.test('ifat3.it@163.com') = true;
pattern.test(' ifat3_-.@42du.cn') = true;
pattern.test('ifat3@42du.online') = true;
pattern.test('Mao Sanpang@42du.cn') = true;

Option 3 (Sicherheit)

Bevor der Mobiltelefon-Verifizierungscode erschien, war die E-Mail-Verifizierung fast die einzige Bedingung, um die Einzigartigkeit des Benutzers sicherzustellen . Das Aufkommen temporärer Postfächer (auch 10-Minuten-Postfächer oder Wegwerfpostfächer genannt) macht den Mechanismus der Postfachüberprüfung und Kontoaktivierung bedeutungslos. Die Adressen temporärer E-Mail-Adressen sind nicht aufzählbar, daher können wir eine Whitelist nur verwenden, um nur einer begrenzten Anzahl von E-Mail-Domänennamen die Überprüfung zu ermöglichen.

Zusätzliche Regeln gemäß Option 1:

Der E-Mail-Domänenname darf nur 163.com, qq.com oder 42du.cn sein.
Der reguläre Ausdruck wird wie folgt angegeben:

var pattern = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|42du.cn)$/;
Nach dem Login kopieren

Vollständiger Testcode

nbsp;HTML>


  <meta>
  <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title>


<p></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>

Nach dem Login kopieren

Testergebnis:

pattern.test('cn42du@163.com') = true;
pattern.test('ifat3@sina.com.cn') = false;
pattern.test('ifat3.it@163.com') = true;
pattern.test('ifat3_-.@42du.cn') = true;
pattern.test('ifat3@42du.online') = false;
pattern.test('毛三胖dd@42du.cn') = false;
Nach dem Login kopieren

Obwohl die Überprüfung nach Schema 3 die Sicherheit gewährleisten kann, wenn die Whitelist ebenfalls vorhanden ist long führt dazu, dass die Musterzeichenfolge zu lang ist. Zu diesem Zeitpunkt können Sie die Whitelist für E-Mail-Domänennamen als Array schreiben, reguläre Ausdrücke für die vorläufige Überprüfung verwenden und die Whitelist für die sekundäre Überprüfung des Domänennamens verwenden.

现给出邮箱验证函数如下:

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<p style="text-align: left;">上述isEmail()函数列举了常用的11种邮箱域名,大家可以根据需要适当补充或删减。</p><p>相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!</p><p>推荐阅读:</p><p><a href="http://www.php.cn/js-tutorial-398128.html" target="_blank">JS数组方法使用步骤详解</a><br></p><p><a href="http://www.php.cn/js-tutorial-398124.html" target="_blank">行内元素padding和margin在什么情况下无效</a><br></p>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonImplementierung der regelmäßigen Filterung von JS-E-Mail-Postfächern/E-Mail-Adressen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!