1. C# / Говнокод #22329

    −15

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    bool IsEmailValid(string email)
    {
        if (email ==  "") 
            return false;
    
        if (!sEmail.Contains("@") || !sEmail.Contains(".")) 
            return false;
    
        return true;
    }

    И так сойдет! (с)

    Запостил: lichutor, 14 Февраля 2017

    Комментарии (19) RSS

    • interface IValidatable {
      bool Valid {get;}
      }
      interface IUser : IValidatable {
      string Username {get;}
      }

      interface IDomain :IValidatable {
      Uri Uri {get;}
      }

      interface IEmail : IValidatable {
      IUser User {get;}
      IDomain Domain {get;}
      }
      Ответить
    • Какой ты предлагаешь критерий/способ валидации e-mail, автор?
      Ответить
      • Проверить наличие символов перед"@", между "@" и ".", после "."
        Ответить
        • Адрес НЕ обязан содержать точку. У домена первого уровня тоже может быть MX-запись и он тоже может принимать e-mail.
          Ответить
          • на каждый юзерский ввод nslookup дергать чтоли прикажете?
            Ответить
            • Иногда так делают. Проверка существования MX-записи сокращает количество принципиально неактивируемых учёток (юзеры нередко делают опечатку в адресе). Хотя иногда и такая проверка не помогает...
              Ответить
              • Ну принципиально неактивируемые gc соберёт через недельку...

                guest, видимо, не о сайте, где юзеры сами регаются, а о софтинах, где емейл вбивают в какую-нибудь формочку.
                Ответить
                • Ну тогда можно хотя бы проверить доменную часть на соответствие стандарту DNS. И тут два варианта:
                  1. Доменная часть закодирована в Punycode (xn--что-то-там). Тогда проверяем, можно ли такую строку раскодировать.

                  2. Доменная часть не закодирована. В этом случае она может содержать чуть ли не любые юникодные символы (список разрешённых символов зависит от политики домена предыдущего уровня). Т. е. проверять толком нечего.

                  Есть ли символы, которые принципиально запрещены для доменов?

                  *****

                  А часть, которая до @, мы и проверить не можем, ибо она является «locally interpreted string», т. е. может содержать почти любые символы.
                  Ответить
          • В таком случае тем более не нужна проверка на наличие точки, согласен.
            Ответить
            • Тем не менее, я согласен с замечанием, что перед @ должна быть непустая подстрока, да и после @ — тоже.
              Ответить
    • У меня от этой хуйни RSS умер.
      Ответить
    • А ничё что IsEmailValid("hui") == IsEmailValid("[email protected]") ?
      Ответить
    • что такое sEmail?
      Ответить
      • Я случайно не переименовал все вхождения переменной. sEmail это email
        Ответить
      • венгерская нотация, (string) mail
        Ответить
        • Венгры даже до шарпика добрались?
          Ответить
          • А что, раньше венгры были изолированы от шарпа?
            Ответить
    • IsEmailValid(null)
      Ответить

    Добавить комментарий