Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Проверить строку на правильность Email адреса

Delphi , Интернет и Сети , E-mail

Проверить строку на правильность Email адреса

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

function MailURLMayBeInvalid(const s: string): Boolean;
 var
   i: Integer;
   c: string;
 begin // ' ', a, o, u, ?, [, ], (, ), : in EMail-Address 
  Result := (Trim(s) = '') or (Pos(' ', AnsiLowerCase(s)) > 0) or
     (Pos('a', AnsiLowerCase(s)) > 0) or (Pos('o', AnsiLowerCase(s)) > 0) or
     (Pos('u', AnsiLowerCase(s)) > 0) or (Pos('?', AnsiLowerCase(s)) > 0) or
     (Pos('[', AnsiLowerCase(s)) > 0) or (Pos(']', AnsiLowerCase(s)) > 0) or
     (Pos('(', AnsiLowerCase(s)) > 0) or (Pos(')', AnsiLowerCase(s)) > 0) or
     (Pos(':', AnsiLowerCase(s)) > 0);
   if Result then Exit; // @ not in EMail-Address; 
  i      := Pos('@', s);
   Result := (i = 0) or (i = 1) or (i = Length(s));
   if Result then Exit;
   Result := (Pos('@', Copy(s, i + 1, Length(s) - 1)) > 0);
   if Result then Exit; // Domain <= 1 
  c      := Copy(s, i + 1, Length(s));
   Result := Length(c) <= 1;
   if Result then Exit;
   i      := Pos('.', c);
   Result := (i = 0) or (i = 1) or (i = Length(c));
 end;

Функция MailURLMayBeInvalid в Delphi, которая проверяет, является ли заданная строка валидным адресом электронной почты. Функция принимает строковый параметр s и возвращает булевое значение, указывающее, является ли адрес электронной почты валидным или нет.

Преобразование функции:

  1. Она сначала проверяет, является ли входная строка пустой (Trim(s) = '') или содержит любые из следующих символов: пробел, буквы 'a', 'o', 'u', вопросительный знак '?', квадратные скобки '[', ']'), круглые скобки '(', ')', двоеточие ':'. Если это так, функция сразу возвращает True, указывая, что адрес электронной почты вероятно недействителен.
  2. Затем она проверяет, является ли символ '@' в строке более чем одним раз или находится он на самом начале или конце строки. Если это так, функция также возвращает True.
  3. Далее она извлекает часть строки после символа '@' с помощью функции Copy и проверяет, имеет ли домен (то есть часть после '@') более одного символа. Если это так, функция возвращает False, указывая, что адрес электронной почты вероятно действителен.
  4. Наконец, она проверяет, есть ли точка '.' в части домена строки. Если нет, или если точка находится на самом начале или конце части домена, функция возвращает True.

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

Потенциальные улучшения:

  • Функция могла быть более robust, проверяя дополнительные недопустимые символы в адресе электронной почты, такие как специальные символы <, >, (, ), и т.д.
  • Вместо использования простого поиска шаблонов можно использовать регулярные выражения для валидации адреса электронной почты. Это сделало бы функцию более гибкой и легче поддерживаемой.
  • Можно также рассмотреть реализацию более полного алгоритма валидации, учитывающего дополнительные правила для валидных адресов электронной почты, такие как требование к локальному частному имени (то есть части перед '@') быть разделенным от домена не менее чем одним символом.

Пример модификации функции с использованием регулярных выражений:

function MailURLMayBeInvalid(const s: string): Boolean;
var
  re: TRegEx;
begin
  re := TRegEx.Create('^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$');
  if not re.IsMatch(s) then
    Result := True
  else
    Result := False;
end;

Этот регулярный выражение шаблон.matches большинство общепринятых форматов валидных адресов электронной почты. Обратите внимание, что это только один пример и может не покрывать все возможные валидные адреса электронной почты.

Функция MailURLMayBeInvalid на языке Delphi проверяет строку на правильность Email-адреса, выявляя ошибки в формате адреса и домене.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: E-mail ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-24 19:55:11/0.0036389827728271/0