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

  1. function IsValidEmail(const Value: string): boolean;
  2.   function CheckAllowed(const s: string): boolean;
  3.   var
  4.     i: integer;
  5.   begin
  6.     Result:= false;
  7.     for i:= 1 to Length(s) do
  8.     begin
  9.       { недопустимый символ в s - значит недопустимый адрес }
  10.       if not (s[i] in ['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.']) then
  11.         Exit;
  12.     end;
  13.     Result:= true;
  14.   end;
  15. var
  16.   i: integer;
  17.   namePart, serverPart: string;
  18. begin // начало выполнения IsValidEmail
  19.   Result:= false;
  20.   i:= Pos('@', Value);
  21.   if i = 0 then
  22.     Exit;
  23.   namePart:= Copy(Value, 1, i - 1);
  24.   serverPart:= Copy(Value, i + 1, Length(Value));
  25.   // @ не указано имя         имя или сервер не указаны; минимально для сервера. "a.com"
  26.   if (Length(namePart) = 0) or ((Length(serverPart) < 1)) then
  27.     Exit;
  28.   i:= Pos('.', serverPart);
  29.   // должно иметь точку и как минимум два знака от конца
  30.   if (i = 0) or (i > (Length(serverPart) - 1)) then
  31.     Exit;
  32.   Result:= CheckAllowed(namePart) and CheckAllowed(serverPart);
  33. end;
Автор: Udo Nesshoever

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

  • +1
  • views 966
  • XakepPRO XakepPRO
  • comments 3

Реклама

Мы в соцсетях

tw tg yt gt