自然排序

自然地排序混合數字和字母的資料。

  • 作者:Allan Jardine
  • 需求:DataTables 2+

資料通常是數字和字母的複雜混合(檔案名稱是一個常見的例子),並且以自然的方式對它們進行排序是一個相當困難的問題。

幸運的是,Javascript 的 localeCompare 方法現在已被廣泛支援,並提供了一種我們可以與 DataTables 一起使用的自然排序方法。

使用

可以通過多種不同的方式獲取和使用此插件。

瀏覽器

此插件可在 DataTables CDN 上取得

JS

然後,該插件將自動註冊到全域 DataTables 實例。如果您正在使用 AMD 載入器(例如 Require.js),也可以使用此檔案。

請注意,如果您正在使用多個插件,將這些插件組合到一個單一檔案並將其託管在您自己的伺服器上,而不是多次請求 DataTables CDN,在效能方面可能會有好處。

NPM

這些插件都可以在 NPM 上取得(也可以與 Yarn 或任何其他 Javascript 套件管理器一起使用),作為 datatables.net-plugins 套件的一部分。要使用此插件,請先安裝插件套件

npm install datatables.net-plugins

ES 模組

然後,如果您正在使用 ES 模組,請導入 datatables.net、您需要的任何其他 DataTables 擴充功能和插件

import DataTable from 'datatables.net';
import 'datatables.net-plugins/sorting/natural.mjs';

CommonJS

如果您正在使用 Node 的 CommonJS 載入器(例如,使用舊版本的 Webpack 或非模組 Node 程式碼),請使用以下方法 require 該插件

var $ = require('jquery');
var DataTable = require('datatables.net');
require('datatables.net-plugins/sorting/natural.js');

範例

// Natural sorting
 new DataTable('#myTable',
     columnDefs: [
         { type: 'natural', target: 0 }
     ]
 } );
// Html can be stripped from sorting by using 'natural-nohtml' such as
 new DataTable('#myTable',
     columnDefs: [
         { type: 'natural-nohtml', target: 0 }
     ]
  } );
// Case insensitive natural sorting
 new DataTable('#myTable',
     columnDefs: [
         { type: 'natural-ci', target: 0 }
     ]
  } );

版本控制

如果您對如何改進此插件有任何想法,或者發現任何錯誤,它可以在 GitHub 上找到,並且非常歡迎提出 Pull Request!