Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

T-SQL:verificando o formato de e-mail


Eu testei a seguinte consulta com muitos endereços de e-mail errados e válidos diferentes. Deve fazer o trabalho.
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'

Ele verifica estas condições:
  • Sem espaços incorporados
  • '@' não pode ser o primeiro caractere de um endereço de e-mail
  • '.' não pode ser o último caractere de um endereço de e-mail
  • Deve haver um '.' em algum lugar depois de '@'
  • o sinal '@' é permitido
  • O nome de domínio deve terminar com pelo menos 2 caracteres de extensão
  • não pode ter padrões como '[email protected]' e '..'