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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    <script LANGUAGE="JavaScript">
        <!--
        function checkEmailAddress(email) {
            var allowedChars = ".-_@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
            var numberAt = 0;
            var indexAt = -1;
            var thisChar = "";
            if (email == "")
                return 0;
            for(j=0 ; j <= email.length ; j++) {
                thisChar = email.substring(j,j+1);
                if (allowedChars.indexOf(thisChar) == -1) {
                    return 0;
                }
                if (thisChar == "@") {
                    if (j == 0 || j >= email.length - 3 || numberAt > 0)
                        return;
                    numberAt++;
                    indexAt = j;
                }
            }
            if (numberAt != 1)
            {
                return 0;
            }
            if (email.substring(indexAt+1).indexOf(".") <= 0)
                return;
            for (j=0; j < email.indexOf("@"); j++) {
                if (allowedChars.indexOf(email.substring(j,j+1)) >= 4)  // Email address is correct!!
                    return 1;
            }
            return;
        }

    В данный момент используется в зарубежном SaaS-решении

    Запостил: wunge, 20 Июля 2010

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

    • ну опять 25, проверка емайла способом времен VB6
      Ответить
      • ну судя по тегам комментария внутри <script> этот код ненамного моложе пресловутого VB6
        Хотя регексы в JS были чуть ли не с самого его появления, если не ошибаюсь.
        Ответить
        • и эти теги до сих пор используют.
          Ответить
        • Комментарий используется до сих пор, сам обычно ставлю.
          А вот LANGUAGE="JavaScript" уже устарел.
          Ответить
          • type="text/javascript"? я к нему до сих пор настороженно отношусь
            как и к требованию xhtml писать контролам формы не name а id. Потому как не работает почему-то (
            Ответить
            • Оо Это что за требование такое, писать ID? Просветите, а?
              А type работает везде. Более того, если его не указать, то все равно работает. Кошмар :(
              Ответить
              • ну например тут(http://www.fasthtml.ru/opinion/otlichija_xhtml_ot_html/) говорится
                а javascript для тега <script> считается по умолчанию, так что можно вообще не указывать. как и для <style type="text/css">
                Ответить
                • В XML идентификаторы фрагмента имеют тип ID, и в элементе может быть только один атрибут типа ID. Таким образом, в XHTML 1.0 атрибут id определён как атрибут типа ID. Чтобы быть уверенным, что документы XHTML 1.0 являются правильно структурированными документами XML, документы XHTML 1.0 обязаны использовать атрибут id для определения идентификаторов фрагмента, и даже в тех элементах, которые исторически имели атрибут name.

                  In XML, fragment identifiers are of type ID, and there can only be a single attribute of type ID per element. Therefore, in XHTML 1.0 the id attribute is defined to be of type ID. In order to ensure that XHTML 1.0 documents are well-structured XML documents, XHTML 1.0 documents MUST use the id attribute when defining fragment identifiers on the elements listed above. See the HTML Compatibility Guidelines for information on ensuring such anchors are backward compatible when serving XHTML documents as media type text/html.

                  И каким образом это относится к элементам форм? Читайте спеки, а не куету.
                  Ответить
            • >> я к нему до сих пор настороженно отношусь
              Почему? Потому что оно есть в стандарте xhtml?

              >>как и к требованию xhtml писать контролам формы не name а id
              Это только в 1.1
              А его почти никто не поддерживает
              Ответить
              • и 1 и 2 - фишки еще новые, поэтому указываю оба аттрибута (language + type, name + id ) и в этой части плюю на xhtml
                а в остальных требованиях я усами-лапами-хвостом за
                плюс еще не всем редакторам нравятся хмл-заголовки и доктипы, здесь и их не пишу (
                Ответить
                • То есть, Вы не ставите doctype, потому что Вашему текстовому редактору это не нравится? А то, что без указания doctype происходит переход в quirks mode, это ничего страшного, правда же?
                  Ответить
                  • доктип пишу, а вот хмл заголовок опускаю. "текстовый редактор" - Ёклипсь
                    Ответить
                    • Под xml-заголовком Вы подразумеваете это?
                      <html xmlns="http://www.w3.org/1999/xhtml">
                      Ответить
                      • нет, вы что ))) а вот это: <?xml version="1.0" encoding="utf-8"?>
                        иначе Ёклипсь грить, что нету доктипа
                        Ответить
                        • Э. А каким боком это относится к html?
                          Ответить
                          • xhtml
                            Ответить
                            • The root element of the document must contain an xmlns declaration for the XHTML namespace [XMLNS]. The namespace for XHTML is defined to be http://www.w3.org/1999/xhtml. An example root element might look like:
                              <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

                              Lure Of Chaos, или я безбожно туплю, тогда поправьте меня, или Вы несете какой-то бред.
                              Ответить
                              • все правильно, <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> и есть root element, а заголовок - это заголовок. иначе бы doctype тоже можно было записать как корневой
                                Ответить
                                • Ептель-штоптель.
                                  Вот это: <?xml version="1.0" encoding="utf-8"?>,
                                  каким боком оно относится к XHTML?
                                  Ответить
                                  • а разве XHTML не должен быть well-formed xml? c блоками CDATA, кстати, и прочим?
                                    Ответить
                                    • Lure Of Chaos, а поставьте-ка xml-загловок xhtml-документу, и попробуйте его отдать браузеру. Вот он обрадуется.

                                      И кстати, XHTML 1.0 Transitional вполне себе обходится без блоков CDATA

                                      UPD Да, и Вы не ответили, каким боком заголовок XML отностится к XHTML
                                      Ответить
                                      • >>а поставьте-ка xml-загловок xhtml-документу, и попробуйте его отдать браузеру. Вот он обрадуется.

                                        Вполне себе обрадуется, если отдать контент-тайм text/xml.

                                        XHTML это подмножество XML.
                                        Ответить
                                        • Анонимус, вот только в этом случае у нас
                                          "BackCompat" == document.compatMode, то есть имеем quirks.
                                          Ответить
                                          • Если указан док-тайп то он не квиркс, а стандарт комплейнт.
                                            Разве нет?
                                            Ответить
                                            • Если доктайп указан -- то да. У меня вопрос в следующем -- зачем XHTML-документу хидер
                                              <?xml version="1.0" encoding="utf-8"?>

                                              Он что-то дает?
                                              Ответить
                                              • ну, как минимум там можно указать энкодинг. по умолчанию он utf-8, так что де-факто он ничего не дает (как и в обычном XML).

                                                в декларативных языках есть множество ничего не дающих вещей
                                                Ответить
                                      • http://www.xml.com/pub/a/2003/03/19/dive-into-xml.html

                                        HTML 4 should be served as text/html. This is what everybody does, so no problem there.
                                        "HTML compatible" XHTML (as defined in appendix C of the XHTML 1.0 specification) may be served as text/html, but it should be served as application/xhtml+xml. This is probably the sort of XHTML you're writing now, so you could go either way.
                                        XHTML 1.1 should not be served as text/html.
                                        Although the spec is not finalized yet, all indications are that XHTML 2.0 must not be served as text/html.
                                        Ответить
                • 1) новые? Вы поддерживаете netscape 2.0? ВСЕ браузеры, понимающие XHTML их понимают.
                  А браузеры, выпущенные в последние лет 5 понимают точно.

                  2) Что значит "редактор не понимает"?:) Вы в чем пишите?
                  Ответить
                  • 1. да, type отлично понимают. А вот когда попробовал заменить в теге input атрибут name на id - он (firefox 3) перестал отдавать параметр на сервер.

                    2. Eclipse (тогда еще Europa) писал как ошибку.
                    Ответить
                    • 1. И никто не отдаст. Потому что это XHTML 1.1, а его никто не поддерживает))
                      Почитайте-ка стандарт.

                      В 1.0 можно (и нужно) юзать name.

                      2) древности какие) я в idea пишу -- она все понима
                      Ответить
                      • 1. правильно, я 1.1 и читал = ))

                        2. спасибо за хинт, но меня Eclipse Helios более чем устраивает. Нет-нет, я пробовал, и Idea, и Netbeans, и даже PHPStorm и еще не припомню какие. Но везде чего-то не хватало по сравнению с ёклипсом
                        Ответить

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