Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Delphi
Перезагрузить страницу Проверка правильности ввода мейла
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
werovulv werovulv вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2011
Post Проверка правильности ввода мейла - 19.10.2015, 19:05

Доброго времени всем, столкнулся с такой проблемой, необходимо проверить на правильность ввода e-mail, и если есть ошибка в мейле, то вывести ее.
Ответить с цитированием
  (#2 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,399
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 19.10.2015, 20:11

Проверить наличие @ в имени, а также текста до и после.
Отправить письмо и дождаться ответа, письмом или переходом по ссылке из письма.

Ознакомьтесь со статьёй "Прекратите проверять Email с помощью регулярных выражений!".
А также с регуляркой, проверяющей большинство адресов: Email Address Regular Expression That 99.99% Works.
Ответить с цитированием
Пользователь сказал cпасибо:
werovulv (19.10.2015)
  (#3 (permalink)) Старый
werovulv werovulv вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2011
По умолчанию 19.10.2015, 20:18

Это да, в нете порылся нашёл, а чтобы еще был вывод сообщения, что именно в мейле неправильно введено, какая буква, а то бывает и такое) Вот код:
delphi Код:
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;
Ответить с цитированием
  (#4 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,399
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 19.10.2015, 20:20

['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.'] - это не полный перечень допустимых символов.
Ответить с цитированием
  (#5 (permalink)) Старый
domser domser вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.06.2017
По умолчанию 22.06.2017, 00:06

ShowMassage поможет в выводе ошибки на экран
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ограничение ввода exist Pascal 2 23.10.2013 01:51
Проверка поля ввода ADimka Prolog 1 15.02.2013 11:15
Проверка правильности ввода ответа на вопрос tuchin Prolog 9 10.07.2012 13:27
функция проверки правильности написания адреса почты e73t4ph Задания за деньги 3 23.05.2012 21:32
PCI устройство ввода Mori Разное 11 09.01.2012 11:39
Проверка правильности ввода SpiritDoggy С/С++ 9 07.01.2012 00:43
Проверка правильности логического следования методом резолюции MasyaBasya Prolog 1 12.05.2011 19:04
Проверка правильности ввода данных Yulush С/С++ 3 23.10.2010 20:34
Проверка ввода Глупыш Prolog 6 22.10.2005 21:21
Проверка правильности заполнения формы RikWeb DHTML, JavaScript, VBScript 0 30.04.2005 08:52
правильность ввода Bonnie PHP 4 17.06.2004 17:42
Как попарсить строку ввода bdfy1 С/С++ 8 12.02.2004 20:26



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов