我有一个html页面,其中包含一个可以排序的字段。我还创建了一个javascript函数,可以按顺序对该字段进行排序。我们假设p_cSort是' id'该字段的名称。
function change_sort(neworder) {
document.sortForm.p_cSort.value = neworder;
document.sortForm.submit();
但是当我有像
这样的值时12.34
12-35
12.36
12-33
我在搜索页面上搜索它们。返回的结果是
12.34
12.36
12-33
12-35
如何忽略字符"。"和" - "什么时候排序?
所以我要找的结果应该是:
12-33
12.34
12-35
12.36
答案 0 :(得分:1)
简短回答是使用替换和排序功能:
"12.34".replace(/[.-]/, '')
完整答案
var a = ["12.34", "12-35", "12.36", "12-33"];
var b = a.sort(function(a, b){
return parseInt(a.replace(/[.-]/, '')) - parseInt(b.replace(/[.-]/, ''))
});
// now b contain sorted array
// ["12-33", "12.34", "12-35", "12.36"]
答案 1 :(得分:1)
为什么不进行自定义排序功能:
var x = ['12.5', '11.3', '13-5', '10-0'];
x.sort(function(a, b){
a = a.replace(/[-]/, '.');
b = b.replace(/[-]/, '.');
if( parseInt(a) < parseInt(b) ) return -1;
if( parseInt(a) > parseInt(b) ) return 1;
return 0;
});
输出:
["10-0", "11.3", "12.5", "13-5"]
如果您有125.5等等,这也会有效。因为.
和-
都用于比较。
示例&gt; = 100
所以输入:
["100-0", "11.3", "12.5", "13-5"]
将输出
["11.3", "12.5", "13-5", "100-0"]