DELPHI FAQ: Проверка правильности E-mail адреса


Проверка правильности E-mail адреса
Previous  Home  Next


Автор: Udo Nesshoever
Если пользователю Вашего приложения необходимо вводить почтовый адрес, то возникает потребность в проверке адреса на правильнось. Конечно способов сделать это существует множество, но этот, на мой взгляд, самый короткий и доступный для понимания.

Совместимость: Delphi 3.x (или выше)

function
 IsValidEmail(const Value: string): boolean; 
  function
 CheckAllowed(const s: string): boolean; 
  var
 
    i: integer; 
  begin
 
    Result:= false; 
    for
 i:= 1 to Length(s) do 
    begin
 
      { недопустимый символ в s - значит недопустимый адрес }
 
      if
 not (s[i] in ['a'..'z''A'..'Z''0'..'9''_''-''.']) then 
        Exit; 
    end

    Result:= true; 
  end

var
 
  i: integer; 
  namePart, serverPart: string

begin
 // начало выполнения IsValidEmail 
  Result:= false; 
  i:= Pos('@'
, Value); 
  if
 i = 0 then 
    Exit; 
  namePart:= Copy(Value, 1
, i - 1); 
  serverPart:= Copy(Value, i + 1
, Length(Value)); 
  // @ не указано имя         имя или сервер не указаны; минимально для сервера. "a.com" 

  if
 (Length(namePart) = 0or ((Length(serverPart) < 5)) then 
    Exit; 
  i:= Pos('.'
, serverPart); 
  // должно иметь точку и как минимум три знака от конца 

  if
 (i = 0or (i > (Length(serverPart) - 2)) then 
    Exit; 
  Result:= CheckAllowed(namePart) and
 CheckAllowed(serverPart); 
end


Взято с Исходников.ru http://www.sources.ru




DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100