用数字和字符串对列进行排序

时间:2016-03-02 11:52:52

标签: javascript html sorting

我有2个排序列功能,“%”列已排序,但如果我使用字母而不是“%”,则列按字母顺序排序。

main.js我使用此选项来选择选项,paint2有效但paint1不起作用:

var func = (upti == 'T') ? paint1 : paint2;
[...]
str += '<td>' + func(value[firstvalue]) + '</td>';

在其他文件中我有这些功能:

function paint1(tmp) {
  if (tmp == null || tmp == "null" || tmp == "-") {
    return "-";
  } else if (tmp == "Out") {
    return tmp;
  } else {
    tmp = (+tmp).toFixed(1);    
    return "<span>" + tmp + "s</span>";
  }
}

function paint2(disp) {
  if (disp == null || disp == "null" || disp == "-") {
    return "-";
  } else if (disp == "Out") {
    return disp;
  } else if (disp == "100") {
    disp = parseFloat(disp);
    return disp.toFixed(1) + "<span>%</span>";
  } else {
    disp = parseFloat(disp);
    return disp.toFixed(2) + "<span>%</span>";
  }
}

1 个答案:

答案 0 :(得分:0)

创建一个映射表,用百分号替换字母:

function replacer(match, offset, fullstring)
  { 
  /* Store position of replacement */
  replacer[match] = offset;
  return "%";
  }

function sorter(seq)
  {
  var result = seq.replace(/[A-Za-z]/g, replacer);
  return result;
  }