Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Vadres9
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 10
1

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

25.12.2013, 16:48. Просмотров 941. Ответов 7
Метки нет (Все метки)

Домен не может заканчиваться дефисом. Например, недопустим адрес: p_pg@m12-.it.mail.ru
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 16:48
Ответы с готовыми решениями:

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

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

В 1С 7.7 написать программу проверки правильности ввода адреса электронной почты
В 1С 7.7 написать программу проверки правильности ввода адреса электронной почты.

Нет текста сообщения и адреса электронной почты
Добрый день! Такая проблема ... в Хроме, Яндекс-браузере все работает (запросы с сайта приходят) ...

Напишите программу, которая считывает IPv4 адрес и проверяет ее валидность. Форма записи IPv4 адреса – x.x.x.x
Напишите код для программы Пример: Напишите программу, которая считывает IPv4 адрес и проверяет...

7
Kulgar
509 / 194 / 26
Регистрация: 07.08.2013
Сообщений: 814
25.12.2013, 17:06 2
Цитата Сообщение от Vadres9 Посмотреть сообщение
Домен не может заканчиваться дефисом. Например, недопустим адрес: p_pg@m12-.it.mail.ru
С чем у Вас возникли сложности?
0
Vadres9
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 10
25.12.2013, 17:13  [ТС] 3
нужно ввести что последний элемент домена не равнялся "-".Чего то не получается.
кое как написал прогу которая проверяет на корректность логина.
я только учусь что так нужна помощь
0
Kulgar
509 / 194 / 26
Регистрация: 07.08.2013
Сообщений: 814
25.12.2013, 17:14 4
Vadres9, какой Вы видете помощь Вам исходя из предоставленной Вами информации?
0
Vadres9
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 10
25.12.2013, 17:21  [ТС] 5
желательно написать весь код для C++ Builder
0
Kulgar
509 / 194 / 26
Регистрация: 07.08.2013
Сообщений: 814
25.12.2013, 17:25 6
Vadres9, так Вы мало чему научитесь. Выкладывайте свои наработки, получайте ценные указания, верные ссылки, изучайте материал, набирайте опыт, завоёвыйвайте бонусы, заводите друзей. Освободите Калимдор!
0
c0rvax
89 / 89 / 22
Регистрация: 02.07.2013
Сообщений: 290
Завершенные тесты: 1
25.12.2013, 17:31 7
Vadres9,
1) разбей исходную строку адреса на подстроки, ориентируясь на разделители '@.';
2) каждую из полученных строк проверь на корректность [чтобы начиналась с буквы, не содержала запрещённых символов, типа '%;:^', заканчивалась бы буквой или цифрой];
3) если все строки проходят проверку - адрес правильный, иначе - нет.
0
gunslinger
случайный прохожий
1382 / 887 / 345
Регистрация: 20.07.2013
Сообщений: 2,509
26.12.2013, 21:18 8
В общем случае, если разбираешься в регулярных выражениях (и "понимаешь" Дельфи ака Паскаль), то пример проверки корректности email'а можешь по[д]смотреть здесь (см. последнюю функцию DecorateEMails, далее обрати внимание на константу MailTemplate):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
{$B-}
unit HyperLinksDecorator;
 
{
 
 Functions to 'decorate' hyper-links
   (search for URLs and e-mails and replace 
    them with appropriate HTML-links).
 Uses TRegExpr library.
 
 (c) 2002 Andrey V. Sorokin, Saint Petersburg, Russia
  mailto:anso@mail.ru
  [url]http://www.RegExpStudio.com[/url]
 
 v. 0.101 2002.08.30 
  -=- (-) Missed closing tag </a>
 
 Note:
  This functions have to be optimized - they construct result strings
  with step by step concatenation that can take a lot of resources while
  processing big input texts with many hyper links.
 
}
 
interface
 
uses
 RegExpr;
 
type
TDecorateURLsFlags = (
 // describes, which parts of hyper-link must be included
 // into VISIBLE part of the link:
  durlProto, // Protocol (like 'ftp://' or 'http://')
  durlAddr,  // TCP address or domain name (like 'RegExpStudio.com')
  durlPort,  // Port number if specified (like ':8080')
  durlPath,  // Path to document (like 'index.html')
  durlBMark, // Book mark (like '#mark')
  durlParam  // URL params (like '?ID=2&User=13')
 );
 
TDecorateURLsFlagSet = set of TDecorateURLsFlags;
 
 
function DecorateURLs (
 // can find hyper links like 'http://...' or 'ftp://..'
 // as well as links without protocol, but start with 'www.'
 
 const AText : string;
 // Input text to find hyper-links
 
  AFlags : TDecorateURLsFlagSet = [durlAddr, durlPath]
 // Which part of hyper-links found must be included into visible
 // part of URL, for example if [durlAddr] then hyper link
 // 'www.RegExpStudio.com/contacts.html' will be decorated as
 // '<a href="http://www.RegExpStudio.com/contacts.html">www.RegExpStudio.com</a>'
 
  ) : string;
 // Returns input text with decorated hyper links
 
 
function DecorateEMails (
 // Replaces all syntax correct e-mails
 // with '<a href="mailto:ADDR">ADDR</a>'
 // For example, replaces 'anso@mail.ru'
 // with '<a href="mailto:anso@mail.ru">anso@mail.ru</a>'.
 
 const AText : string
 // Input text to find e-mails
 
  ) : string;
 // Returns input text with decorated e-mails
 
 
implementation
 
uses
 SysUtils; // we are using AnsiCompareText
 
function DecorateURLs (const AText : string;
  AFlags : TDecorateURLsFlagSet = [durlAddr, durlPath]
  ) : string; 
const 
  URLTemplate = 
   '(?i)' 
   + '(' 
   + '(FTP|HTTP)://'             // Protocol 
   + '|www\.)'                   // trick to catch links without
                                 // protocol - by detecting of starting 'www.'
   + '([\w\d\-]+(\.[\w\d\-]+)+)' // TCP addr or domain name
   + '(:\d\d?\d?\d?\d?)?'        // port number
   + '(((/[%+\w\d\-\\\.]*)+)*)'  // unix path
   + '(\?[^\s=&]+=[^\s=&]+(&[^\s=&]+=[^\s=&]+)*)?'
                                 // request (GET) params
   + '(#[\w\d\-%+]+)?';          // bookmark
var
  PrevPos : integer;
  s, Proto, Addr, HRef : string;
begin
  Result := ''; 
  PrevPos := 1; 
  with TRegExpr.Create do try 
     Expression := URLTemplate; 
     if Exec (AText) then 
      REPEAT 
        s := ''; 
        if AnsiCompareText (Match [1], 'www.') = 0 then begin
           Proto := 'http://';
           Addr := Match [1] + Match [3];
           HRef := Proto + Match [0];
          end
         else begin
           Proto := Match [1];
           Addr := Match [3];
           HRef := Match [0];
          end;
        if durlProto in AFlags
         then s := s + Proto;
        if durlAddr in AFlags
         then s := s + Addr;
        if durlPort in AFlags
         then s := s + Match [5];
        if durlPath in AFlags
         then s := s + Match [6];
        if durlParam in AFlags
         then s := s + Match [9];
        if durlBMark in AFlags
         then s := s + Match [11];
        Result := Result + System.Copy (AText, PrevPos,
         MatchPos [0] - PrevPos) + '<a href="' + HRef + '">' + s + '</a>'; //###0.101
        PrevPos := MatchPos [0] + MatchLen [0];
      UNTIL not ExecNext;
     Result := Result + System.Copy (AText, PrevPos, MaxInt); // Tail
    finally Free;
   end;
end; { of function DecorateURLs
--------------------------------------------------------------}
 
function DecorateEMails (const AText : string) : string;
 const
  MailTemplate =
   '[_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+';
 var
  PrevPos : integer;
 begin
  Result := '';
  PrevPos := 1;
  with TRegExpr.Create do try
     Expression := MailTemplate;
     if Exec (AText) then
      REPEAT
        Result := Result + System.Copy (AText, PrevPos,
         MatchPos [0] - PrevPos) + '<a href="mailto:' + Match [0] + '">' + Match [0] + '</a>';
        PrevPos := MatchPos [0] + MatchLen [0];
      UNTIL not ExecNext;
     Result := Result + System.Copy (AText, PrevPos, MaxInt); // Tail
    finally Free;
   end;
 end; { of function DecorateEMails
--------------------------------------------------------------}
 
 
end.
0
26.12.2013, 21:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2013, 21:18

Написать программу, которая проверяет, представляют ли элементы введенного с клавиатуры массива
Написать программу, которая проверяет, представляют ли элементы введенного с клавиатуры массива из...

Написать программу, которая проверяет, принадлежит ли точка (x,y) закрашенной области (x, y и при необходимости R вводит
Помогите с программой

Проверка адреса электронной почты
Как можно проверить адрес электронной почты, не отправляя данные формы на сервер?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru