sql >> Database >  >> RDS >> Sqlserver

T-SQL:controleren op e-mailformaat

Ik heb de volgende query getest met veel verschillende verkeerde en geldige e-mailadressen. Het moet het werk doen.

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'

Het controleert deze voorwaarden:

  • Geen ingesloten spaties
  • '@' mag niet het eerste teken van een e-mailadres zijn
  • '.' mag niet het laatste teken van een e-mailadres zijn
  • Er moet een '.' ergens na '@'
  • het '@'-teken is toegestaan
  • Domeinnaam moet eindigen met een extensie van minimaal 2 tekens
  • mag geen patronen hebben zoals '[email protected]' en '..'


  1. Queryresultaten retourneren als een door komma's gescheiden lijst in PostgreSQL

  2. AANGEPASTE BESTELLING OP Uitleg:

  3. Oracle DB Server + APEX + ORDS + JasperReports from scratch (Deel 1)

  4. Beveiligingsbenaderingen in gegevensmodellering. Deel 4