code: function ( selector ) {
              var result = {}, index = 0;
      
              selector.replace( /([a-z]+)?(\#\w+)?(\.\w+)?(\[[^\[\]]+\])?/ig, function ( str, node, id, className, attr ) {
                  if ( node ) result.node = node.toLowerCase(), index++;
                  if ( id ) result.id = id.replace(/^\#/, ''), index++;
      
                  //class 복수조건 가능
                  if ( className ) {
                      var reClass = className.replace(/^\./, '');
                      if ( result.className ) {
                          result.className.push( reClass );
                      } else {
                          result.className = [reClass];
                      }
                      index++;
                  }
                  //attr 복수조건 가능
                  if ( attr ) {
                      var reAttr = attr.replace(/[\s\"\'\[\]]/g, '');
                      if ( result.attr ) {
                          result.attr.push( reAttr );
                      } else {
                          result.attr = [reAttr];
                      }
                      index++;
                  }
              });
      
              result.length = index;
              return result;
          }
docs: selector에서 attr을 분류, {length:조건의 갯수, node, id, className:Array, attr:Array}, 예) img[src*=gif].list[alt*=img]