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

    +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
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    function getProductIds(text, containerId) {
            var products = new Array();
     
            var valueFound = false;
     
            var start = 0;
            var end = 0;
            var itemCount = 0;
            var curChar = 0;
     
            var readStart = text.indexOf(containerId);
     
            var triggerChar = ">";
     
            while (valueFound == false) {
                if (text.substring(readStart + curChar, readStart + curChar + triggerChar.length) == triggerChar)
                    valueFound = true;
                else
                    curChar++;
            }
     
            start = readStart + curChar + 1;
     
            valueFound = false;
            triggerChar = "</div>";
     
            while (valueFound == false) {
                if (text.substring(readStart + curChar, readStart + curChar + triggerChar.length) == triggerChar)
                    valueFound = true;
                else
                    curChar++;
            }
     
            end = readStart + curChar;
     
            var itemsHtml = text.substring(start, end).replace(" ", "").replace("\n", "");
     
            curChar = 0;
     
            triggerChar = "ProductId";
     
            while (curChar < itemsHtml.length) {
                if (itemsHtml.substring(curChar, curChar + triggerChar.length) == triggerChar)
                    itemCount++;
     
                curChar++;
            }
     
     
     
            for (var curItem = 1; curItem <= itemCount; curItem++) {
     
                var product = new Array();
     
                product[0] = getValue(itemsHtml, "LineItem_" + curItem + "_ProductId", "value=\"", "\"", 1);
                product[1] = getValue(itemsHtml, "LineItem_" + curItem + "_ProductName", "value=\"", "\"", 1);
                product[2] = getValue(itemsHtml, "LineItem_" + curItem + "_Quantity", "value=\"", "\"", 1);
                product[3] = getValue(itemsHtml, "LineItem_" + curItem + "_UnitPrice", "value=\"", "\"", 1);
     
                products[curItem - 1] = product;
     
            }
     
            return products;
        }

    Шедевральный код. Работают с HTML даже не на нативном js, а как с обычной строкой. Правильно, зачем париться - строки знают все :)

    PS Код не мой. Однако стоит отметить, что он успешно используется на реальных сайтах :)

    Запостил: sashapinsk, 20 Марта 2015

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

    • >>PS Код не мой.
      Мопед не мой, я только обьяву разместил
      Ответить

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