1. JavaScript / Говнокод #2796

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function isValidEmail(address) {
        if (address.indexOf('@') < 1) return false;
        var name = address.substring(0, address.indexOf('@'));
        var domain = address.substring(address.indexOf('@') + 1);
        if (name.indexOf('(') != -1 || name.indexOf(')') != -1 || name.indexOf('<') != -1 || name.indexOf('>') != -1 || name.indexOf(',') != -1 || name.indexOf(';') != -1 || name.indexOf(':') != -1 || name.indexOf('\\') != -1 || name.indexOf('"') != -1 || name.indexOf('[') != -1 || name.indexOf(']') != -1 || name.indexOf(' ') != -1) return false;
        if (domain.indexOf('(') != -1 || domain.indexOf(')') != -1 || domain.indexOf('<') != -1 || domain.indexOf('>') != -1 || domain.indexOf(',') != -1 || domain.indexOf(';') != -1 || domain.indexOf(':') != -1 || domain.indexOf('\\') != -1 || domain.indexOf('"') != -1 || domain.indexOf('[') != -1 || domain.indexOf(']') != -1 || domain.indexOf(' ') != -1) return false;
        return true;
    }

    проверка email на валидность по индусски

    Запостил: avm, 15 Марта 2010

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

    • регексп не нынче не в моде... :(((
      Ответить
      • ты видел правильный регексп на полную валидность? он там несколько страниц занимает. Индус молодец.
        Ответить
        • ну тот регэксп на страницу хоть действительно валидность по стандарту проверяет
          а ты думаешь индус тут наговнокодил хоть что-то близкое к стандарту? да там бред сивой кобылы по сути накоден :)
          Ответить
        • Ну несколько страниц и что? Скопипасти да юзай. Правда тормозить может, тогда "облегчённый" вариант за пять минут пишется. Если знать регэкспы.
          Ответить
    • Да, например такой
      (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
      Ответить
    • Только не надо пастить сюда тот гигантский, он полэкрана займёт =)
      Ответить
      • Кстати, дайте ссылку. На Хабре попадалась, но в закладки так и не занес:(
        Ответить
        • http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
          Ответить
          • в JS не работает :(
            Ответить
            • Ну, какбе надо яйца оторвать тому, кто проверяет такой регуляркой мэйл на клиенте. имхо.
              Ответить
              • Так тесты производительности надо сначала провести, а потом говорить.
                Ответить
    • показать все, что скрытоГде здесь С++?
      Ответить
    • Правильно писать через дефис: по-индусски.
      Ответить

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