Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

Соблюдение формата адреса электронной почты   Найти похожие ветки 

 
AndrewLi ©   (2005-10-09 18:38) [0]

Занят я тем, что пишу алгоритм для адреса электронной почты. Нужно, чтобы были применены правила написания

адреса. Ограничение на допустимые символы сформировал
(
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key>="a") and (Key<="z") or (Key>="A") and (Key<="Z") or (Key="@") or (Key=".") or (Key>="0") and

(Key<="9")
then Edit1.ReadOnly:=False
else Edit1.ReadOnly:=True
end;
)
, разве, что кроме "_".

Теперь вот занят обработкой последовательности записи элементов адреса и количеством допустимых символов
1) имя@сервер.зона
2) "." может быть записана только после "@"
3) "@","." могут быть записаны только один раз
4) до и после "@" и "." обязательно должен присутствовать хотя бы один символ, а между "@" и "." хотябы один
5) адресс должен быть записан на английском языке, а это значит, что, например переключась на русский язык

вполне можно написать и "." (ведь у ".", что на русском и на английском языке код 46, поэтому фильтрация клавиш

по их коду не допустима). Допустим только английский.

Если заниматься проверкой правильности записи адреса
1) в режиме ввода, то
1.1) Возможно сделать переменную скажем, типа Boolean, чтобы, после ввода, например "@" присваивать True, и

после запретить ввод "@"
1.2) Или перехватывать сообщения Windows о нажатии клавиш. Там есть фиксатор количества нажатия клавиши.

Возможно сделать допуск до одного нажатия на "@" и "."
2) или уже после записи.
2.1) тогда нужно будет перебирать строку, а значит формировать файл. И к тому же, как-то не корректно будет не

направлять правильность записи адреса в процессе


 
Anatoly Podgoretsky ©   (2005-10-09 18:45) [1]

Про множества и операто IN наверно не слышал.
Сервер твой? Если нет то рассуждения насчет точки неверны


 
Fay ©   (2005-10-09 19:14) [2]

Пункты 2 и 3 неверны


 
junior   (2005-10-09 19:29) [3]

используй  регулярные выражения, например:
http://regexpstudio.com/TRegExpr/TRegExpr.html


 
Anatoly Podgoretsky ©   (2005-10-09 20:11) [4]

Fay ©   (09.10.05 19:14) [2]
А если подумать то и пункты 4 и 5


 
Fay ©   (2005-10-09 20:16) [5]

2 Anatoly Podgoretsky ©   (09.10.05 20:11) [4]
согласен, они верны в той же мере


 
SergP.   (2005-10-09 20:23) [6]

Точек может быть сколько угодно.
Например в моем мыле (провайдерском) их аж целых 3

типа
xxx@xxx.xx.xxxxxx.xxx


> Занят я тем, что пишу алгоритм для адреса электронной почты.


Это случайно не обработки спам-листов? :-)


 
easy ©   (2005-10-09 20:52) [7]

регулярное выражение для определения правильности e-mail -
([\w_-]+(\.[\w_-]+)*@[\w_-]+(\.[\w_-]+)+)

на PHP -

function is_email($mail){
return preg_match("/([\w_-]+(\.[\w_-]+)*@[\w_-]+(\.[\w_-]+)+)/",$mail);
}


с использованием [3] -

uses
RegExpr;

function is_mail(const mail: string): boolean;
begin
 Result := false;
 with TRegExpr.Create do try
   Expression := "([\w_-]+(\.[\w_-]+)*@[\w_-]+(\.[\w_-]+)+)";
   Result := Exec(mail) and (MatchLen[1]=Length(mail));
 finally
   Free;
 end;
end;


 
AndrewLi ©   (2005-10-10 18:18) [8]

Вот спасибо всем за ответы. Помогли.

Почему же пункт №2 неверен. Ведь, если по порядку, то вначале пишется "@", а уж после "."-ки. А в пункте №3, да , оказался неправ, насчет ".", но "@" ведь записывается один раз. Да, насамом деле я недобрал до количества символов "." Их может быть более одного

Вот спасибо за RegExpr, все становится понятно. О множествах слышал, но как-то сложновато получается

Можно ли, запретить переключение на другой язык. Нужно, чтобы принимался английский?

Хотелось бы, но к сожалению не обработка спама.


 
GuAV ©   (2005-10-10 18:22) [9]


> Ведь, если по порядку, то вначале пишется "@", а уж
> после "."-ки.

Не обязательно, при создании ящика можно указать логин с точками.


 
Fay ©   (2005-10-10 19:35) [10]

2 AndrewLi ©   (10.10.05 18:18) [8]
>> но "@" ведь записывается один раз.
Понимать следует как "про пункт третий нельзя сказать, что он полностью верен" ...


 
Anatoly Podgoretsky ©   (2005-10-10 20:12) [11]

AndrewLi ©   (10.10.05 18:18) [8]
Почему же пункт №2 неверен. Ведь, если по порядку, то вначале пишется "@", а уж после "."-ки.

Это не так и более того, точка не обязательна вообще.

А в пункте №3, да , оказался неправ, насчет ".", но "@" ведь записывается один раз. Да, насамом деле я недобрал до количества символов "." Их может быть более одного

Неверно потому что смешал два разных условия в одном пункте и сторое условие неверное.

Можно ли, запретить переключение на другой язык. Нужно, чтобы принимался английский?

Можно, но это такое же неверное условие, национальные буквы не запрещены и тот кто делает такой запрет в программе, тот копает себе яму на будущее. Не надо запрещать, надо знать правильный email или нет и это определяется не правилами, а сервером почты.



Страницы: 1 вся ветка

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.059 c
8-1118082500
Grief
2005-06-06 22:28
2005.10.30
Сквозное окно


2-1128586322
SQL-nik
2005-10-06 12:12
2005.10.30
Помогите с ADO


14-1128597016
MBo
2005-10-06 15:10
2005.10.30
О книгах Седжвика


6-1121045043
jcrush
2005-07-11 05:24
2005.10.30
Ножно по определенному URL найти файлы


11-1109970995
dimaxx
2005-03-05 00:16
2005.10.30
WordWrap в KOLRichEdit