Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.041 c
14-1128505443
pazitron_brain
2005-10-05 13:44
2005.10.30
Формула активного рабочего дня.


2-1128594835
Дилетант
2005-10-06 14:33
2005.10.30
Значение переменной


14-1128574443
КаПиБаРа
2005-10-06 08:54
2005.10.30
Задача про поплавок


3-1126865844
V.I.P.er
2005-09-16 14:17
2005.10.30
Пароль на PARADOX7


2-1128501065
Дилетант
2005-10-05 12:31
2005.10.30
Поиск по вхождению





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский