E-Mail mit Regex in JavaScript validieren

Habdul Hazeez 12 Oktober 2023
  1. Überprüfen Sie E-Mails mit TLDs zwischen zwei und drei Buchstaben und verbieten Sie Zeichen in E-Mail- und Domänennamen in JavaScript
  2. Überprüfen Sie E-Mails zwischen zwei und sechs TLD-Namen und verbieten Sie das Pluszeichen in E-Mail-Namen in JavaScript
  3. E-Mail überprüfen und Zahlen und gültige Zeichen in E-Mail und Domänennamen in JavaScript zulassen
  4. Überprüfen Sie die E-Mail-Adresse im RFC 5322-Format in JavaScript
  5. Abschluss
E-Mail mit Regex in JavaScript validieren

In diesem Artikel lernen Sie mehrere reguläre Ausdrücke kennen, die verschiedene Arten von E-Mail-Adressen validieren können. Daher können Sie eines der Muster ändern oder auswählen, das Ihrem Anwendungsfall am besten entspricht.

Überprüfen Sie E-Mails mit TLDs zwischen zwei und drei Buchstaben und verbieten Sie Zeichen in E-Mail- und Domänennamen in JavaScript

Sie können einen regulären Ausdruck schreiben, der E-Mail-Adressen zwischen zwei und drei TLDs zulässt. Zum Beispiel .com und .io.

Das bedeutet auch, dass das Muster eine E-Mail mit den folgenden Merkmalen nicht zulässt.

  1. Eine TLD mit mehr als drei Zeichen TLD, z. B. .mobi
  2. Mehrere TLD, z.B. (.googlemail.sa)
  3. Domain mit Zahlen, z. B. tech125.com
  4. Der Punkt (.) oder ein Bindestrich (-) im E-Mail-Namen
  5. Der Bindestrich im Domainnamen

In unserem Beispielcode unten haben wir einen regulären Ausdruck, der true für E-Mail-Adressen wie abc@gmail.com, hello@hello.com und ab0c@gmail.com zurückgibt.

let pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;

function checkEmailAddress(email_address) {
  let result = pattern.test(email_address);
  console.log(result);
}

checkEmailAddress('abc@gmail.com')

Ausgang:

true

In der Zwischenzeit gibt das Muster für die folgende E-Mail-Adresse false zurück.

ab0c@my-domain.com

Überprüfen Sie E-Mails zwischen zwei und sechs TLD-Namen und verbieten Sie das Pluszeichen in E-Mail-Namen in JavaScript

Ein reguläres Ausdrucksmuster kann das vollständige Stoppzeichen (.) zulassen und das Pluszeichen (+) in einer E-Mail-Adresse nicht zulassen. Dies bedeutet, dass E-Mail-Adressen mit dem Pluszeichen den regulären Ausdruck nicht bestehen.

Sie geben also false zurück, auch wenn es gültig ist. Das Muster, das wir in diesem Abschnitt definieren, gibt false für eine E-Mail mit den folgenden Merkmalen zurück.

  1. Eine E-Mail mit dem Pluszeichen (+)
  2. Eine TLD mit mehr als sechs Zeichen, z. (".Technologie")

Im folgenden Code haben wir einen neuen regulären Ausdruck. In der Zwischenzeit gibt dieses Muster für die letzte E-Mail im vorherigen Abschnitt true zurück.

let pattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;

function checkEmailAddress(email_address) {
  let result = pattern.test(email_address);
  console.log(result);
}

checkEmailAddress('ab0c@my-domain.com')

Ausgang:

true

In der Zwischenzeit werden die unten aufgeführten E-Mail-Adressen dieses Muster nicht bestehen. Sie sind jedoch alle für einige E-Mail-Anbieter gültig.

ab+c@my-domain.com
mr+john@my-domain.com.ga

E-Mail überprüfen und Zahlen und gültige Zeichen in E-Mail und Domänennamen in JavaScript zulassen

Sie können ein flexibles Muster für reguläre Ausdrücke schreiben, das die meisten der heute existierenden gültigen E-Mail-Adressen zulässt. Eine solche E-Mail hat die folgenden Merkmale.

  1. Einige Zeichen wie der Punkt und das Zeichen in der E-Mail und im TLD-Namen.
  2. Die neuen TLDs wie .technology und .business.

Der Nachteil dieses Musters ist, dass es mehrere dieser Zeichen zulässt. Infolgedessen kann der Benutzer eine extrem lange E-Mail-Adresse übergeben, die gültig erscheint, es aber nicht ist.

let pattern =
    /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

function checkEmailAddress(email_address) {
  let result = pattern.test(email_address);
  console.log(result);
}

checkEmailAddress('johndoe@citadel-consulting.com');

Ausgang:

true

Die folgende ungültige E-Mail-Adresse wird dieses Muster jedoch passieren.

aaa++++++++++@gmail.technologyyyyyyyyyyyyyyyyyyyyyyyyyyy.com

Überprüfen Sie die E-Mail-Adresse im RFC 5322-Format in JavaScript

Sie können ein reguläres Ausdrucksmuster schreiben, das mit dem Format RFC 5322 kompatibel ist. Ein solcher regulärer Ausdruck hat jedoch eine lange Länge.

Infolgedessen kann es unverständlich sein. Sie können also die Kurzform mit der Klasse RegExp in JavaScript verwenden.

Im folgenden Code haben wir ein reguläres Ausdrucksmuster implementiert, das mit RFC 5322 konform ist. Es wird also für die gültigsten E-Mail-Adressen true zurückgeben.

let pattern = new RegExp(
    '([!#-\'*+/-9=?A-Z^-~-]+(\.[!#-\'*+/-9=?A-Z^-~-]+)*|"\(\[\]!#-[^-~ \t]|(\\[\t -~]))+")@([!#-\'*+/-9=?A-Z^-~-]+(\.[!#-\'*+/-9=?A-Z^-~-]+)*|\[[\t -Z^-~]*])');

function checkEmailAddress(email_address) {
  let result = pattern.test(email_address);
  console.log(result);
}

checkEmailAddress('aa@gmail.com.sa');

Ausgang:

true

Abschluss

In diesem Artikel wurden verschiedene reguläre Ausdrucksmuster besprochen, die eine E-Mail-Adresse validieren. Es ist jedoch alles auf der Client-Seite.

Wir bitten Sie, die E-Mail für zusätzliche Sicherheit auch serverseitig zu validieren.

Habdul Hazeez avatar Habdul Hazeez avatar

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.

LinkedIn

Verwandter Artikel - JavaScript Regex