Regex für E-Mail-Adressen

Nutze /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/, um zu prüfen, ob eine komplette Zeichenkette eine gültige E-Mail-Adresse ist. Jedes Beispiel unten wurde mit dem Muster getestet, und du kannst es mit vorgeladenen Beispielen im Regex Tester öffnen.

Aktualisiert am

/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/
Im Regex-Tester öffnen
EingabeErgebnis
user@example.com✓ Treffer
first.last+news@mail.example.co.uk✓ Treffer
x_y%z@sub.domain.io✓ Treffer
plainaddress✗ Kein Treffer
@example.com✗ Kein Treffer
user@domain✗ Kein Treffer
user name@example.com✗ Kein Treffer
user@@example.com✗ Kein Treffer

So funktioniert das Muster

TeilBedeutung
^Anfang der Zeichenkette
[A-Za-z0-9._%+-]+Der lokale Teil: ein oder mehrere Buchstaben, Ziffern, Punkte, Unterstriche, Prozentzeichen, Plus- oder Bindestriche
@Ein wörtliches @
[A-Za-z0-9.-]+Der Domainname, einschließlich Subdomains
\.Ein wörtlicher Punkt vor der Top-Level-Domain
[A-Za-z]{2,}Die Top-Level-Domain: zwei oder mehr Buchstaben (com, io, museum)
$Ende der Zeichenkette

Code-Beispiele

JavaScript

const re = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}', value))

PHP

preg_match('/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/', $value) === 1;

Hinweise und Einschränkungen

Das ist das praktische Muster, das die meisten Anmeldeformulare verwenden. Es akzeptiert einige technisch ungewöhnliche Adressen (zwei Punkte hintereinander) und lehnt seltene gültige ab (Local Parts in Anführungszeichen, Domains mit IP-Adressen). Der einzige echte Test einer E-Mail-Adresse ist der Versand eines Bestätigungslinks. In HTML-Formularen bekommst du mit <input type="email"> die Browser-Validierung kostenlos dazu.

Häufige Fragen

Wie lautet der Regex für E-Mail-Adressen?
/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/ — er prüft die gesamte Zeichenkette. Die Tabelle oben zeigt, was jeder Teil macht.
Welche Beispiele treffen zu?
Von den getesteten Beispielen treffen diese zu: user@example.com, first.last+news@mail.example.co.uk, x_y%z@sub.domain.io. Die anderen nicht.
Wie teste ich diesen Regex?
Klicke auf „Im Regex-Tester öffnen“ – Muster, Flags und Beispieltext werden automatisch geladen, und Treffer werden beim Bearbeiten markiert.