Heim > Web-Frontend > js-Tutorial > JS führt die Verifizierung der E-Mail-Adresse/E-Mail-Adresse regelmäßig durch

JS führt die Verifizierung der E-Mail-Adresse/E-Mail-Adresse regelmäßig durch

php中世界最好的语言
Freigeben: 2018-06-09 14:09:18
Original
6186 Leute haben es durchsucht

Dieses Mal bringe ich Ihnen JS mit, um eine reguläre Verifizierungs-E-Mail/E-Mail-Adresse zu erstellen. Welche Vorsichtsmaßnahmen gibt es für die Verwendung von JS, um eine reguläre Verifizierungs-E-Mail/E-Mail-Adresse zu erstellen?

Die Regeln sind wie folgt definiert:

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

  • 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

<!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('cn42du@163.com') = "+pattern.test('cn42du@163.com')+";");
  w("pattern.test('ifat3@sina.com.cn') = "+pattern.test('ifat3@sina.com.cn')+";");
  w("pattern.test('ifat3.it@163.com') = "+pattern.test('ifat3.it@163.com')+";");
  w("pattern.test('ifat3_-.@42du.cn') = "+pattern.test('ifat3_-.@42du.cn')+";");
  w("pattern.test('ifat3@42du.online') = "+pattern.test('ifat3@42du.online')+";");
  w("pattern.test('毛三胖@42du.cn') = "+pattern.test('毛三胖@42du.cn')+";");
  function w(val) {
    document.getElementById("main").innerHTML += val +"<br />";
  }
</script>
</body>
</html>
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

<!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('cn42du@163.com') = "+pattern.test('cn42du@163.com')+";");
  w("pattern.test('ifat3@sina.com.cn') = "+pattern.test('ifat3@sina.com.cn')+";");
  w("pattern.test('ifat3.it@163.com') = "+pattern.test('ifat3.it@163.com')+";");
  w("pattern.test('ifat3_-.@42du.cn') = "+pattern.test('ifat3_-.@42du.cn')+";");
  w("pattern.test('ifat3@42du.online') = "+pattern.test('ifat3@42du.online')+";");
  w("pattern.test('毛三胖@42du.cn') = "+pattern.test('毛三胖@42du.cn')+";");
  function w(val) {
    document.getElementById("main").innerHTML += val +"<br />";
  }
</script>
</body>
</html>
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

<!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('cn42du@163.com') = "+pattern.test('cn42du@163.com')+";");
  w("pattern.test('ifat3@sina.com.cn') = "+pattern.test('ifat3@sina.com.cn')+";");
  w("pattern.test('ifat3.it@163.com') = "+pattern.test('ifat3.it@163.com')+";");
  w("pattern.test('ifat3_-.@42du.cn') = "+pattern.test('ifat3_-.@42du.cn')+";");
  w("pattern.test('ifat3@42du.online') = "+pattern.test('ifat3@42du.online')+";");
  w("pattern.test('毛三胖dd@42du.cn') = "+pattern.test('毛三胖@42du.cn')+";");
  function w(val) {
    document.getElementById("main").innerHTML += val +"<br />";
  }
</script>
</body>
</html>
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 wird. 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.

Die E-Mail-Verifizierungsfunktion sieht jetzt wie folgt aus:

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);
Nach dem Login kopieren

Die obige isEmail()-Funktion listet 11 häufig verwendete E-Mail-Domänennamen auf. Sie können sie nach Bedarf hinzufügen oder löschen.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

302-Statuscode in Axios

Kapseln Sie den Vue2-Routing-Navigations-Hook und verwenden Sie ihn im tatsächlichen Kampf

Das obige ist der detaillierte Inhalt vonJS führt die Verifizierung der E-Mail-Adresse/E-Mail-Adresse regelmäßig durch. 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