ДействиеСценарий / Говнокод #7309 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
public override function match(xdoc:XML):Boolean {
			var newsearch:String = search;
			var xpathnodes:Array = new Array();
			while(true) {
				var xpathnode:String = splitnodes.exec(newsearch);
				if(xpathnode) {
					xpathnodes.push(xpathnode);
				} else {
					break;
				}
				newsearch = newsearch.substring(newsearch.search(xpathnode) + xpathnode.length);
			}
			return matchXPath(xpathnodes, xdoc);
		}

Фантастическая реализация String.split() за тем же авторством. :)

Запостил: wvxvw wvxvw, (Updated )

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

    • Иногда мне кажется, что между нами что-то есть, может это пиписюнчик, а может и нечто большее.
      Ответить
    • exec() меняет lastIndex у регулярного выражения, поэтому цикл не бесконечный, но все равно очень глупый. Т.е. нужно было использовать либо String.split() либо RegExp.match() ну только с разными выражениями, конечно. Но даже, если делать так, как задумал автор, то
      while (result = expression.exec()) { ... }
      потому-что ветвление внутри цикла явно лишнее.
      Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8