sql >> Base de Datos >  >> RDS >> Sqlserver

T-SQL:comprobación del formato de correo electrónico

Probé la siguiente consulta con muchas direcciones de correo electrónico incorrectas y válidas diferentes. Debería hacer el trabajo.

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'

Comprueba estas condiciones:

  • Sin espacios incrustados
  • '@' no puede ser el primer carácter de una dirección de correo electrónico
  • '.' no puede ser el último carácter de una dirección de correo electrónico
  • Debe haber un '.' en algún lugar después de '@'
  • se permite el signo '@'
  • El nombre del dominio debe terminar con una extensión de al menos 2 caracteres
  • no puede tener patrones como '[email protected]' y '..'