Delphi - база знаний

       

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


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



Автор:

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) = 0) or ((Length(serverPart) < 5)) then 
    Exit; 
  i:= Pos('.', serverPart); 
  // должно иметь точку и как минимум три знака от конца 
  if (i = 0) or (i > (Length(serverPart) - 2)) then 
    Exit; 
  Result:= CheckAllowed(namePart) and CheckAllowed(serverPart); 
end

Взято с Исходников.ru



Содержание раздела