Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
Всем добрый день! Вопрос по регулярным выражениям . Есть строка, которая содержит несколько e-mail. Почему, когда они разделены символом ";" и строка не содержит пробелов, то метод Test возвращает True ( маска ^[a-zA-Z0-9.-_]+@[a-zA-Z0-9.-]+\.\w\w+$ )? А если разделитель не ";" или в строке есть пробелы, то метод Test возвращает False. То есть для строки "A@rbc.ru;B@rbc.ru" вернется True, а для строки "A@rbc.ru; B@rbc.ru" - false. Код примерно такой. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 13:06 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
у меня получилось что-то типа Код: plaintext "name@domain.comname@domain.com" ваш же вариант вообще хавает конец мейла с цифрами (newtest@hotmail.com1), не воспринимает мейл с черточкой (Fred-Blogss@yahoo.com) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 19:17 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
SevolodПочему, когда они разделены символом ";" и строка не содержит пробелов, то метод Test возвращает TrueПочему, почему... ошибка в шаблоне потому что. Тебе что надо сделать то? Узнать несколько в строке почтовых адресов или один? Тогда шаблон должен быть примерно таким: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2009, 23:23 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
Спасибо! Krasnaja Shapka , шаблон не я придумал. Понятно, что его можно поменять. Просто сначала хочется понять, почему он работает именно так. White Owl , А в чем именно ошибка в шаблоне? Ведь в шаблоне нет ни одной точки с запятой. Почему VBScript считает валидной строку e-mail, разделенную именно этими разделителями. Задача - сказать все ли e-mailы валидны в строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 09:44 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
Sevolod А в чем именно ошибка в шаблоне? Ведь в шаблоне нет ни одной точки с запятой. Почему VBScript считает валидной строку e-mail, разделенную именно этими разделителями. а почему вы считаете, что ваш шаблон считает валидной строку e-mail, разделенную именно этими разделителями? он хавает даже слеши и вообще все что угодно.... ибо у вас вначале присутствует "." - точка, а она без слеша автор Соответствует любому отдельному знаку, кроме "\n". посему и у вас и у White Owl - неправильная строка получается... надо пихать в первых квадратных скобках вместо "." - "\." ну и попутно третью черту "-" надо тоже изменить на "\-" в общем как-то так.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 17:40 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
SevolodА в чем именно ошибка в шаблоне? Ведь в шаблоне нет ни одной точки с запятой. Почему VBScript считает валидной строку e-mail, разделенную именно этими разделителями.Да пофиг ему какие там разделители в строке. Нету у регулярных выражений понятия "разделители", там только "символы" :) SevolodЗадача - сказать все ли e-mailы валидны в строке.Тогда тебе нужно во первых разрезать строку по разделителям, а потом проверить каждый из полученных кусочков на соответствие правилам формирования адреса. Можно сделать например так: Код: plaintext Krasnaja Shapkaнадо пихать в первых квадратных скобках вместо "." - "\." ну и попутно третью черту "-" надо тоже изменить на "\-"Не надо :) У квадратных скобок собственные правила обработки шаблонных символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 20:00 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
Ну. На самом деле я вызываю VBScript через CreateOleObject. Но, судя по MSDN, это не принципиально. Krasnaja Shapka , для моей маски опытным путем я установил, что Код: plaintext а - False . Повторюсь, я не понимаю, почему результат таков. White Owl , Да. Согласен. Это вариант решения. Можно распарсить строку (хотя по-моему несколько забавно читать про мощь регулярных выражений и перед их использованием делать парсинг). В крайнем случае я им воспользуюсь. Но почему же Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 21:51 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
Sevolod Код: plaintext а - False . Повторюсь, я не понимаю, почему результат таков. Потому что у тебя имя юзера проверяется через "[a-zA-Z0-9.-_]" Здесь определены три диапазона "a-z", "A-Z" и ".-_" последнее это тоже диапазон. В который, по странной случайности (смотри ASCII таблицу), входит оооочень многое. Вот смотри пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. SevolodДа. Согласен. Это вариант решения. Можно распарсить строку (хотя по-моему несколько забавно читать про мощь регулярных выраженийНу во первых, не распарсить а разрезать. А во вторых, мощь мощи рознь. И вообще, не забывай старую-старую шутку: " Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems. " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2009, 23:41 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
White Owl, Спасибо большое! Чего-то я ошибался про ASCII-код минуса ((. Главное, что стало понятно, почему все работает именно так. Остальное - дело техники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2009, 10:02 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
White OwlKrasnaja Shapkaнадо пихать в первых квадратных скобках вместо "." - "\." ну и попутно третью черту "-" надо тоже изменить на "\-"Не надо :) У квадратных скобок собственные правила обработки шаблонных символов. гм... не знал... но всетаки, если записать "\-" вместо "-", то ".-_" перестает быть диаппазоном :) и все ок :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2009, 15:54 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
А если подумать, то в принципе можно и одними шаблонами решить задачу: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2009, 19:09 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
прикольно получилось вот только я бы добавил чтоб в имене домена было имя + буквенное расширение... иначе "1@4" или "baba@masha.111" или "baba@masha..."- тоже эмейлы, хотя это и не так но тем неменее ваш шаблон лучший из представленного :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2009, 11:59 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
кстати подчеркивание в имени домена тоже не допускается... финальная версия у меня получилась такая: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2009, 16:37 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
Тут есть примеры http://komandin.org/regex/regex_view.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2009, 09:41 |
|
||
|
RegExp. Проверка нескольких e-mail в одной строке
|
|||
|---|---|---|---|
|
#18+
SevolodВсем добрый день! Вопрос по регулярным выражениям . Есть строка, которая содержит несколько e-mail. Почему, когда они разделены символом ";" и строка не содержит пробелов, то метод Test возвращает True ( маска ^[a-zA-Z0-9.-_]+@[a-zA-Z0-9.-]+\.\w\w+$ )? А если разделитель не ";" или в строке есть пробелы, то метод Test возвращает False. То есть для строки "A@rbc.ru;B@rbc.ru" вернется True, а для строки "A@rbc.ru; B@rbc.ru" - false. Код примерно такой. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 18:32 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=142&tid=2160326]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 16ms |
| total: | 133ms |

| 0 / 0 |
