code: function(param) {
        var step, start, res;
        //如果无参数 当成是获取第一个元素
        if (!param || !(param = param.replace(/\s+/g, ""))) {
          return {
            start: 1,
            step: 0
          };
        }
        if (res = nthCache.get(param)) return res;
        // 对even odd等转化为标准的a，b组合(即step与start)
        if (param == "even") {
          start = 2;
          step = 2;
        } else if (param == "odd") {
          step = 2;
          start = 1;
        } else {
          res = param.match(nthValueReg);
          // 对错误的nth参数抛出错误
          if (!res) step = null; // 无论其他参数，如果step为null，则永远为false
          else {
            if (res[1]) {
              step = 0;
              start = parseInt(res[1]);
            } else {
              if (res[2] == "-") res[2] = "-1";
              step = res[2] ? parseInt(res[2]) : 1;
              start = res[3] ? parseInt(res[3]) : 0;
            }
          }
        }
        if (start < 1) {
          if (step < 1) {
            step = null; //标志false
          } else {
            start = -(-start) % step + step;
          }
        }
        return nthCache.set(param, {
          start: start,
          step: step
        });
      }
docs: ### parse的规则定义部分开始 一些用到的正则式，但是又不属于parser的规则组成