4 Antworten

★ Beste Antwort

Das Wichtigste ist, `^[^\s@]+@[^\s@]+\.[^\s@]+$` für eine grundlegende Überprüfung zu verwenden, weil perfekte Regex-Pattern für E-Mails ein Albtraum sind und niemand sie wirklich nutzt. Wenn du es ernst nehmen musst, verlass dich lieber auf eine dedizierte Bibliothek wie `email-validator`, anstatt dir selbst ein Pattern auszudenken.

Es kommt wirklich drauf an, was du tun willst. Wenn du nur eine schnelle Überprüfung auf Client-Seite brauchst, um dem Nutzer vor dem Absenden Feedback zu geben, dann funktioniert ein einfacher Regex. Aber wenn du denkst, dass ein Regex dich vor ungültigen Adressen schützt oder dass es ein echter Validator ist, verschwendest du deine Zeit. Die RFC-Spezifikationen für E-Mails sind so kompliziert, dass ein perfekter Regex unleserlich wäre.

Der beste Ansatz ist immer, eine Bestätigungsmail zu verschicken. Wen kümmert es, ob das Format technisch gesehen nach RFC 5322 gültig ist - wenn die Person auf den Link klickt, den du ihr geschickt hast, weißt du, dass es funktioniert. Wenn du auf jeden Fall ein Pattern für das Frontend brauchst, nimm etwas Vernünftiges wie `^[^@\s]+@[^@\s]+\.[^@\s]+$`, aber betrachte das eher als Show denn als echte Validierung. Auf der Backend-Seite solltest du zumindest prüfen, ob die Domain existiert (MX-Record), wenn du es wirklich ernst meinen willst, sonst verlass dich einfach auf die Bestätigungsmail.

Das, das euch fehlt, ist, dass ihr der Regex in der Produktion ohnehin nicht vertrauen solltet, ehrlich gesagt. Die echte Überprüfung ist, eine Bestätigungs-E-Mail zu versenden und zu sehen, ob der Nutzer auf den Link klickt - das ist die einzige Validierung, die zählt. Die Regex hilft euch nur, die offensichtlichsten Tippfehler auf der Client-Seite auszusortieren, aber ein String wie `foo@bar.co` ist für ein einfaches Pattern vollkommen gültig und könnte trotzdem ein Tippfehler sein.

Jag nach dem perfekten Regex nicht - das ist eine klassische Falle. Ein einfaches Pattern wie `^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` schlägt alles Komplizierte, weil es tatsächlich funktioniert und lesbar bleibt, und ohnehin musst du immer eine Bestätigungsmail verschicken, um sicherzugehen, dass die E-Mail wirklich gültig ist.

Deine Antwort

Anmeldenzum Beantworten.