Текущий архив: 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.47 MB
Время: 0.042 c