На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
Модераторы: ALXR
  
    > РВ для проверки emaila (нужна корректировка)
      Всем привет. Имею такое РВ:
      ExpandedWrap disabled
        var filter = /^[-0-9a-z_\.]+@[-0-9a-z^_\.]+\.[a-z]{2,6}$/i;

      Собственно как сделать, чтобы не пропускало:
      #запретить подчеркивание и точки в названии домена, по идее должно работать, но не срабатывает ^_\.
      ExpandedWrap disabled
        yapochtapo@mail_рр.ru
        yapochtapo@.mail.ru
        yapochtapo@mail..ru

      Спасибо.
        Почему бы их тогда просто не перечислять вообще в группе [...] ?
        ExpandedWrap disabled
          var filter = /^[-0-9a-z_\.]+@[-0-9a-z]+\.[a-z]{2,6}$/i;
          Цитата TetRis @
          #запретить подчеркивание и точки в названии домена, по идее должно работать, но не срабатывает ^_\.

          "шапка"(или вознесение в степерь) в квадратных скобках имеет силу только в самом начале. на любой другой позиции он является простым символом.

          Добавлено
          Цитата TetRis @
          .[a-z]{2,6}

          а если домен в зоне .com.ua|.info.net и тд.
            Цитата Amphiluke @
            Почему бы их тогда просто не перечислять вообще в группе [...] ?
            ExpandedWrap disabled
              var filter = /^[-0-9a-z_\.]+@[-0-9a-z]+\.[a-z]{2,6}$/i;

            все хорошо, но:
            ExpandedWrap disabled
              moyapochta@self.your.ru

            не прокатит
              пс. в твоей регурярке много недочетов. не проще ли тебе поискать в интернете. вот на что я первое попал
              ExpandedWrap disabled
                /(?:[0-9a-z][.\-\w]*)@(?:(?:[0-9a-z][\-0-9a-z]*[0-9a-z]\.)+[a-z]{2,6})/i
                каких еще недочетов?

                П.С.
                ExpandedWrap disabled
                  /(?:[0-9a-z][.\-\w]*)@(?:(?:[0-9a-z][\-0-9a-z]*[0-9a-z]\.)+[a-z]{2,6})/i

                пропускает:
                ExpandedWrap disabled
                  poc/hta@mail.ru
                  poc\hta@mail.ru
                  poc?hta@mail.ru
                  pochta@mail.hh..ru
                  poc hta@mail.ru #пробелы как в названии так и в начале

                в общем метод не ахти
                Сообщение отредактировано: TetRis -
                  Если хочешь проверять адреса с помощью регвыра в полном соответствии с RFC, то тебе нужно вот такое выражение
                  :)

                  А если требуется что-то менее строгое и более-менее разумное, то попробуй такой вариант:
                  /^(?:[a-z0-9-]+\.)*[a-z0-9-]+@[a-z0-9-]+\.)+[a-z]{2,6}$/i
                    Цитата AVA12 @
                    Если хочешь проверять адреса с помощью регвыра в полном соответствии с RFC, то тебе нужно вот такое выражение
                    :)

                    А если требуется что-то менее строгое и более-менее разумное, то попробуй такой вариант:
                    /^(?:[a-z0-9-]+\.)*[a-z0-9-]+@[a-z0-9-]+\.)+[a-z]{2,6}$/i

                    лишняя скобочка или как?
                    /^(?:[a-z0-9-]+\.)*[a-z0-9-]+@[a-z0-9-]+\.)+[a-z]{2,6}$/i
                      Вопрос все еще открыт:
                      ExpandedWrap disabled
                        var filter = /^[-0-9a-z_\.]+@[-0-9a-z\.]+\.[a-z]{2,6}$/i;

                      пропускает все еще :(
                      ExpandedWrap disabled
                        pochta@.mail.ua
                        pochta@mail.com..ua
                        pochta@mail.com.pp..ua
                        pochta@mail.com..pp..ua
                        pochta@mail..com..pp..ua
                        и тд...
                        вот подсказали такой РВ, мощное довольно решение, но в название почты пропускает /*^ и тд как исправить?
                        ExpandedWrap disabled
                          /^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2,4}|museum|travel)$/i


                        Или как по Вашему допускать такие символы или нет? Вот я сделал запрет в названии на все символы кроме -_.
                        ExpandedWrap disabled
                          /^[a-z0-9-_\.]+@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2,4}|museum|travel)$/i
                        Сообщение отредактировано: TetRis -
                          Извиняюсь, упустил (?: Вот исправленный вариант:

                          /^(?:[a-z0-9-]+\.)*[a-z0-9-]+@(?:[a-z0-9-]+\.)+[a-z]{2,6}$/i
                          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0390 ]   [ 14 queries used ]   [ Generated: 11.05.24, 18:33 GMT ]