数据表的自然分类货币

时间:2015-07-30 04:35:55

标签: jquery sorting datatable

我在网上发现了一种自然排序功能,似乎已经为许多人提供了诀窍。我将这种自然排序功能实现到我的数据表中,它在一定程度上改善了我得到的结果。

我需要自然排序的原因是因为我有货币值表示为字符串。

例如,如果我有这些值:

{"550", "750", "1,250", "850", "2,300", "400"}

自然排序数组应按此顺序返回:

  • 400
  • 550
  • 750
  • 850
  • 1250
  • 2300

然而,自然排序与逗号混淆并返回如下:

  • 1250
  • 2300
  • 400
  • 550
  • 750
  • 850

有没有办法操纵现有的功能来考虑这些逗号?

以下是我一直在使用的排序算法的链接: http://datatables.net/plug-ins/sorting/natural

修改

还应该注意到我使用的是一个实体框架,其中对象中的Balance字段是一个字符串,但在数据库中是一个小数。在将Balance值添加到对象之前,必须使用字符串格式。

因此解析方法在这种情况下不起作用,我需要能够改变实际函数的一部分,它允许我分割逗号并读取余额的全数值。

2 个答案:

答案 0 :(得分:0)

您的号码被解释为字符串。首先尝试转换它们:使用parseFloat()parseInt()作为货币。

注意JS中已经有一个排序函数。

来源:

答案 1 :(得分:0)

所以我找到了一个适合我的解决方案。 在现有的自然排序函数中,有两个名为resre的正则表达式变量。

在定义re的{​​{1}}变量中,我更改为[0-9]以允许负值。此外,在[0-9.-]变量中,我添加了一个额外的sre,它允许字符串替换格式将所有逗号值替换为|[ ]*,,最终允许我的字符串正确排序。

希望此解决方案有所帮助。功能代码的链接在原始问题的上方。