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

    +170

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (!opts.matchCase){ 
    	var regx = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + query + ")(?![^<>]*>)(?![^&;]+;)", "gi");
    } else {
    	var regx = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + query + ")(?![^<>]*>)(?![^&;]+;)", "g");
    }

    http://code.drewwilson.com/entry/autosuggest-jquery-plugin

    Запостил: sapegin, 26 Апреля 2011

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

    • офигели обьявлять во внутреннем блоке, да еще и по два раза
      Ответить
    • var regx = null;
      if (!opts.matchCase)
      regx = /(?![^&;]+;)(?!<[^<>]*)(" + query + ")(?![^<>]*>)(?![^&;]+;)/gi;
      else
      regx = /(?![^&;]+;)(?!<[^<>]*)(" + query + ")(?![^<>]*>)(?![^&;]+;)/g;
      Ответить
      • Что это за кошмар?! Да к тому же неработающий.
        Ответить
        • Что в моем примере работает иначе исходного варианта?
          Ответить
          • 1. У вас «" + query + "» в пустоте, так что пример просто не работает.
            2. Он по сути идентичен опубликованному мной варианту, т. е. ничего не улучшено.
            Ответить
            • 1. ой печаль :( заработался :(
              2. вынес определение regx за иф, так корректнее имхо, но исходя из (1) беда :)
              Ответить
              • попробуйте всю ночь и весь день не играть в игры
                зы: брату помогло
                Ответить
      • Или вообще:
        var regx = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + query + ")(?![^<>]*>)(?![^&;]+;)", (!opts.matchCase)?"gi":"g");
        Ответить
        • Остаётся только убрать лишние скобки и обратить условие.
          Ответить
      • regx = /(?![^&;]+;)(?!<[^<>]*)(%query)(?![^<>]*>)(?![^&;]+;)/gi;
        Ответить
        • сходите отлейте
          Ответить
          • хосни суйпов, цидор
            Ответить
            • масая кака кимутует нои поссы?
              Ответить
              • function shuffle(str) {
                	str = str.split("");
                	var consPos = [];
                	for (var i = 0; i < str.length; i++)
                		if (/[бвгджзйклмнпрстфхцчшщ]/i.test(str[i]))
                			consPos.push(i);
                	for (var i = 0; i < consPos.length; i++) {
                		if (Math.random() > 0.3) continue;
                		var temp = str[consPos[i]], rnd = ~~(Math.random() * consPos.length);
                		str[consPos[i]] = str[consPos[rnd]];
                		str[consPos[rnd]] = temp;
                	}
                	return str.join("");
                }


                текежь вы морете писать кап я
                Ответить
                • слыш ты жаллий гик, с хуя ни мы метя блять кинутуеть, сене к жизши бавой скрипл не натисапь бтя
                  Ответить
                  • херовато работает это ваше шуффле
                    Ответить
                    • надо вот такую хуету добавить:

                      var l = consPos.length;
                      ...
                      rnd = ~~(Math.random() * (l - i < 10 ? l - i : 10))


                      тогда будет заебца
                      Ответить
    • У меня прям даже голова от этого начала болеть... что автор хотел сказать, когда начал с negative lookahead?
      Ответить

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