【发布时间】:2016-05-08 05:01:02
【问题描述】:
我正在尝试从网站(具体来说是 Pinterest)中提取一些字符串,然后整理这些字符串。问题是字符串既包含数字又包含文本(k 代表千,m 代表百万)。
list.sort(function(a, b) {
var compA = Number( $(a).find('.repinCountSmall').text().trim().replace(/[^0-9]/g, '') );
var compB = Number( $(b).find('.repinCountSmall').text().trim().replace(/[^0-9]/g, '') );
return (compA == compB) ? 0 : (compA > compB) ? -1 : 1;
});
使用上面的代码,如果我有提供以下内容的 .repinCountSmall 列表函数:
1
250
999
1k
1.7k
17.3k
1.2m
当前函数的问题是它把1.7k中的“k”去掉,到达17。同样17.3k,1.2m分别被当作173和12处理。我希望以 k 结尾的数字首先乘以 1000,以 m 结尾的字符串分别乘以 1000000。该列表应在此转换后排序。
有什么解决办法吗?谢谢。
【问题讨论】:
-
“k”、“m”和没有字母是唯一可能的单位吗?
标签: javascript string sorting numbers