PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres-Funktion zur Validierung der E-Mail-Adresse

Viele dieser Antworten sind nah auf den richtigen Weg. Dies sind die Punkte für meine Einreichung.

  • Sie möchten eine Domain verwenden – NICHT das Regelsystem.
  • Sie möchten diese E-Mail-Adressen NICHT mit einem regulären Ausdruck validieren. (Update März 2017:stimmt nicht mehr wirklich)

Ich zeige auf DBA.StackExchange.com zwei Methoden, wie man das richtig macht . Sowohl um nach dem MX-Eintrag zu suchen, als auch anhand der HTML5-Spezifikation. Hier ist es kurz und bündig.

CREATE EXTENSION citext;
CREATE DOMAIN email AS citext
  CHECK ( value ~ '^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$' );

SELECT '[email protected]'::email;
SELECT CAST('[email protected]' AS email);

Für weitere Informationen sehr schlagen vor, dass Sie die Antwort vollständig lesen . In der Antwort zeige ich auch, wie Sie eine DOMAIN erstellen über Email::Valid , und erklären Sie, warum ich diese Methode nicht mehr verwende.