Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

T-SQL:проверка за имейл формат

Тествах следната заявка с много различни грешни и валидни имейл адреси. Трябва да свърши работа.

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'

Той проверява следните условия:

  • Няма вградени интервали
  • „@“ не може да бъде първият знак на имейл адрес
  • ''.' не може да бъде последният знак на имейл адрес
  • Трябва да има „.“ някъде след '@'
  • знакът „@“ е разрешен
  • Името на домейна трябва да завършва с разширение от поне 2 знака
  • не може да има модели като „[email protected]“ и „..“


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите OBJECT_NAME() от различна база данни в SQL Server

  2. Настройка и конфигуриране на винаги включена група за наличност в SQL Server

  3. Нулиране на AutoIncrement в SQL Server след изтриване

  4. Кой е най-дългият възможен телефонен номер в световен мащаб, който трябва да взема предвид в SQL varchar(дължина) за телефона

  5. Как да настроите текущия език в SQL Server (T-SQL)