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

    +167

    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
    var pic_jpg = /(\.jpg)$/ig;
    var pic_jpeg = /(\.jpeg)$/ig;
    var pic_png = /(\.png)$/ig;
    var pic_bmp = /(\.bmp)$/ig;
     var a = $("a");
    $.each(a, function (i, val) {
    		var src = $(val).attr("href");
    		if (src !== undefined) {
    				if (src.match(pic_jpg)) {
    						AppendImage(i, src, 'a');
    				}
    				if (src.match(pic_jpeg)) {
    						AppendImage(i, src, 'a');
    				}
    				if (src.match(pic_png)) {
    						AppendImage(i, src, 'a');
    				}
    				if (src.match(pic_bmp)) {
    						AppendImage(i, src, 'a');
    				}
    		}
    });

    Запостил: DarkThinker, 06 Июня 2012

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

    • ну да, зачем писать альтернативы в регулярке? Только хардкор!=)
      Ответить
      • массивы? Не, не слышал.
        Ответить
        • '|' ?, не, не слышал.

          var pics = /(\.jpg|\.jpeg|\.png|\.bmp)$/i;
          
          if (src.match(pics)) {
              AppendImage(i, src, 'a');
          }

          Зачем тут массивы ?)
          Ответить
          • RegExp.test тоже не слышал :)
            Ответить
          • А еще можно было бы строку развернуть и искать в обратную сторону, а то регулярки умеют только слева направо, что в данном случае непрактично (poker face).
            Ответить
            • Обрати внимание на $ в конце - это служит регуляркам достаточной подсказкой.
              ...Хотя честно говоря не знаю, какая реализация регулярок в JS, может и правда не умеет. :)
              Ответить
              • function extensionMatches(s){
                  	   for (var i = s.length - 1, r = "";
                	       i >= 0 && r.length < 4 && r[i] != ".";
                	       r += s[i], i--);
                	   return /^(ge?pj|gnp|pmb)/i.test(r);
                }
                :3
                Ответить
          • Ну просто массивы обычно проходят ДО регулярок. Я поверю что автор не знал про |, но не знать это... "JS за 24 минуты" детектед.
            Ответить
          • var pics = /\.(jpe?g|png|bmp)$/i;
            Ответить

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