基于字符串对HTML列表进行排序

时间:2015-11-25 07:29:40

标签: javascript jquery html

我的网页上显示的文件列表按照创建日期的顺序排列。文件名以下列格式显示。

file_1_abc_10-23-2015.txt
file_2_fff_10-25-2015.txt
file_88_xyz_11-15-2015.txt
file_42_abc_11-17-2015.txt
file_9_ttt_11-25-2015.txt

我想根据它们包含的短语来组织它们 - 在这种情况下,我想按文件名中的第三个字符串短语排序,因此排序列表看起来像这样

file_1_abc_10-23-2015.txt
file_42_abc_11-17-2015.txt
file_2_fff_10-25-2015.txt
file_9_ttt_11-25-2015.txt
file_88_xyz_11-15-2015.txt

//abc > abc > fff > ttt > xyz

我不确定这是否应该用像jquery这样的前端脚本解决,或者是否可以用模板引擎来完成(我使用百里香,但我不想把它当作百里香问题因为输出列表只是基本的HTML)。我刚开始完成这项任务,不想过度使用它 - 有什么想法吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

假设文件列表是一个数组,您可以这样做:

fileNames.sort(function(a, b){
    return a.split('_')[2].localeCompare(b.split('_')[2]);
});

请注意,您不需要将sort的返回值分配给数组,因为sort可以正常运行。它会改变变量本身。

.split('_')[2]将字符串拆分为数组:['file', '1', 'abc', '10-23-2015.txt'],然后返回索引2的值,即'abc',然后将其用于排序。