sql >> Databáze >  >> RDS >> Sqlserver

T-SQL:kontrola formátu e-mailu

Následující dotaz jsem testoval s mnoha různými nesprávnými a platnými e-mailovými adresami. Mělo by to dělat svou práci.

IF (
     CHARINDEX(' ',LTRIM(RTRIM(@email_address))) = 0 
AND  LEFT(LTRIM(@email_address),1) <> '@' 
AND  RIGHT(RTRIM(@email_address),1) <> '.' 
AND  CHARINDEX('.',@email_address ,CHARINDEX('@',@email_address)) - CHARINDEX('@',@email_address ) > 1 
AND  LEN(LTRIM(RTRIM(@email_address ))) - LEN(REPLACE(LTRIM(RTRIM(@email_address)),'@','')) = 1 
AND  CHARINDEX('.',REVERSE(LTRIM(RTRIM(@email_address)))) >= 3 
AND  (CHARINDEX('[email protected]',@email_address ) = 0 AND CHARINDEX('..',@email_address ) = 0)
)
   print 'valid email address'
ELSE
   print 'not valid'

Kontroluje tyto podmínky:

  • Žádné vložené mezery
  • '@' nemůže být prvním znakem e-mailové adresy
  • '.' nemůže být posledním znakem e-mailové adresy
  • Musí tam být '.' někde za „@“
  • Znak „@“ je povolen
  • Název domény by měl končit příponou alespoň o 2 znaky
  • nesmí mít vzory jako '[email protected]' a '..'


  1. Základy automatizace úloh serveru SQL Server

  2. Nainstalovat mysql-python (Windows)

  3. Přehled ukládání do mezipaměti pro PostgreSQL

  4. Dotaz MySQL Insert nefunguje s klauzulí WHERE