Одесса: °С (вода °С)
Киев: 0°С

Тема: Регулярные выражение

Ответить в теме
Показано с 1 по 19 из 19
  1. Вверх #1
    Новичок Аватар для Mихаил
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    32
    Сообщений
    65
    Репутация
    12
    Записей в дневнике
    1

    По умолчанию Регулярные выражение

    Привет, есть вопрос по регулярным выражением, немогу правильно сформулировать идею, следовательно покажу на примере.

    Например нужно проверить ел. почтовый язык
    Регулярка к ниму
    Код:
    [^0-9][a-z0-9_][email protected][a-z_]*\.[a-z]*
    Но если мыло будет
    тогда как учесть всё поддоменны и то что корневой домен должен быть в пределах {1,3}?
    Примеры на которые регульрное выражение должно совпадать
    Код:
    @freemail.memail.su
    @light.mail.corporation.net
    и т.д.
    Но не должно с
    Код:
    @freemail....memail.su
    @light.mail.domenru
    @rambler.mail
    и т.д.
    Есть идеи как это можно реализовать?


  2. Вверх #2
    Новичок Аватар для Mихаил
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    32
    Сообщений
    65
    Репутация
    12
    Записей в дневнике
    1
    Есть еще грамадный и я предпологаю не ефективный способ
    Код:
    @[a-z_]*((\.)+[a-z]*)+\.([a-z][a-z])|(\2[a-z])$
    Вроде подходит, вот только запись будет верна
    Код:
    @freemail....mail.su
    как и
    Код:
    @freemail.mail.su
    Только
    Код:
    @freemail.mail.com
    уже не верно

    сейчас распишу по цветам
    Код:
    @[a-z_]*((\.)+[a-z]*)+\.([a-z][a-z])|(\2[a-z])$
    @freemail.mail.com
    как видите домен com уже не входи в цепочку хотя указано что
    Код:
    ([a-z][a-z])|(\2[a-z])
    2 либо 3 символа и все это являетса окончанием строки

    Притом запись вида
    Код:
    @freemail.com и @freemail.ru
    уже невходит в цепочку

    Как найти оптимальное решение?

  3. Вверх #3
    я вот такое пользую
    if(!eregi("^[a-zA-Z0-9\._-][email protected][a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$",$email)) { непраавильный мыл }

  4. Вверх #4
    Новичок Аватар для Mихаил
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    32
    Сообщений
    65
    Репутация
    12
    Записей в дневнике
    1
    Цитата Сообщение от LiFeCoSt Посмотреть сообщение
    я вот такое пользую
    if(!eregi("^[a-zA-Z0-9\._-][email protected][a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$",$email)) { непраавильный мыл }
    Проанализировал твой пример и получаетса что твоя регулярка тоже не подходит
    так как на запись вида
    Код:
    [email protected]...mail.ruu.mail
    тоже будет верный вариант, но у нас в начале число и много точек, что в реальном мыле не допустимо

  5. Вверх #5
    Новичок Аватар для Mихаил
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    32
    Сообщений
    65
    Репутация
    12
    Записей в дневнике
    1
    Немного добираюсь до истины
    Код:
    [^0-9][a-z0-9]+@[a-z0-9]+(\.{0,1}[a-z])*
    24mixail23me@freemail.ukrdkd.kdkd.ieiie..ksdfk..
    Лишнии точки не учитывает, но вот корневой домен должен быть от двух до трех символов. Подчеркнутый текст лишний, что нужно еще добавить в регулярку?

  6. Вверх #6
    скажи сколько ты подуровней хочешь что бы глотало ?

  7. Вверх #7
    проверил свой в действии:
    [email protected] пролазит как правильный

    а больше поддоменов я не видел

  8. Вверх #8
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    43
    Сообщений
    1,364
    Репутация
    251
    Записей в дневнике
    3
    [^0-9][a-z0-9][email protected]([a-z0-9]+\.)+[a-z]{2,4}
    где-то так
    Велик и могуч русский язык, а пользоваться некому

  9. Вверх #9
    Новичок Аватар для Mихаил
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    32
    Сообщений
    65
    Репутация
    12
    Записей в дневнике
    1
    Цитата Сообщение от LiFeCoSt Посмотреть сообщение
    проверил свой в действии:
    [email protected] пролазит как правильный

    а больше поддоменов я не видел
    По твое регулярке там и [email protected] пролазит
    Например kmx.ru там уровень входящих поддоменов не ограничен.
    например
    [email protected]

    З.Ы. Просто хотелось получить оптимальный вариант для проверки региляркой мыла

  10. Вверх #10
    Новичок Аватар для Mихаил
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    32
    Сообщений
    65
    Репутация
    12
    Записей в дневнике
    1
    Цитата Сообщение от Guffy Посмотреть сообщение
    [^0-9][a-z0-9][email protected]([a-z0-9]+\.)+[a-z]{2,4}
    где-то так
    Вот это вариан! Спс

  11. Вверх #11
    [email protected] через мой тоже пролазило ... )
    Nitro - blood ---> Turbo - Heart

  12. Вверх #12
    Постоялец форума Аватар для Syon
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    46
    Сообщений
    1,034
    Репутация
    92
    Записей в дневнике
    1
    при наличии тырнета - попробовать запросить MX record
    Ынщть.

  13. Вверх #13
    Новичок Аватар для Mихаил
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    32
    Сообщений
    65
    Репутация
    12
    Записей в дневнике
    1
    Цитата Сообщение от Syon Посмотреть сообщение
    при наличии тырнета - попробовать запросить MX record
    Вы о чем?

  14. Вверх #14
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    43
    Сообщений
    1,364
    Репутация
    251
    Записей в дневнике
    3
    шутит он так. пробить домен по днсу имеется ввиду. хотя в каждой шутке, как понимаешь...
    вообще кури rfc822 на тему формата мыльного адреса.
    и погугли regex test - нугуглиш кучу "проверяльщиков" выражений
    Велик и могуч русский язык, а пользоваться некому

  15. Вверх #15
    Новичок Аватар для Mихаил
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    32
    Сообщений
    65
    Репутация
    12
    Записей в дневнике
    1
    Цитата Сообщение от Guffy Посмотреть сообщение
    ...
    и погугли regex test - нугуглиш кучу "проверяльщиков" выражений...
    Я хотел сам разобратса, в ходе обсуждения темы, я понял где были недочеты, и нашел, самый оптимальный вариант.

  16. Вверх #16
    Постоялец форума Аватар для sleep-walker
    Пол
    Мужской
    Сообщений
    1,335
    Репутация
    139
    Я вот так писал когда-то:
    Код:
    ^[a-z][a-z0-9\.\_\-]{1,15}@([a-z][a-z\_\-]{1,6}\.){1,3}[a-z]{2,3}$

  17. Вверх #17
    Цитата Сообщение от Guffy Посмотреть сообщение
    [^0-9][a-z0-9][email protected]([a-z0-9]+\.)+[a-z]{2,4}
    где-то так
    [email protected] не проходит

    У каждого свой вариант [a-z\d][a-z\d_.%-]*@([a-z\d][a-z\d-]*\.)+[a-z]{2,4}

    Хотя решение уже давно есть:
    http://docstore.mik.ua/orelly/perl3/cookbook/ch06_20.htm
    Говоря по русски нет ни одного 100% подходящего варианта

  18. Вверх #18
    Постоялец форума Аватар для Syon
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    46
    Сообщений
    1,034
    Репутация
    92
    Записей в дневнике
    1
    Ну понятно что спрашивать DNS это не регексы.
    Но у вас же стоит задача валидации мылоадреса.
    Вам нужны потом записи типа [email protected] ?
    Если подходят то нафига вообще верифаить ?
    А если нет, то регексы тогда нафиг и вперед в DNS.

    PS. Да, чуть было не забыл. Так вы тока домен пробъете. А вот на юзверя вам
    100% варианта вообще никто не даст. Даже SMTP чек.
    Ынщть.

  19. Вверх #19
    ИМХО если хочеш реальную валидацию мыла - надо при регистрации отсылать на него письмо со ссылкой для подтверждения. Никакой регексп этого не заменит.
    А вот если шибко навороченный регексп не пропуститт действительно существующее мыло - можно и юзера потерять.


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения