任何數字

依數字排序含有混合數值內容的欄位

  • 作者:David Konrad

依任何數字(忽略文字)排序欄位。如果欄位中包含混合內容,但您仍想依數字排序,這個外掛程式會很有用。「任何數字」指的是

  • 整數,例如 42
  • 小數,例如 42.42 / 42,42
  • 帶正負號的數字,例如 -42.42 / +42.42
  • 科學記號表示的數字,例如 42.42e+10
  • 非法的數字,例如 042,會被視為 42
  • 貨幣數字,例如 €42,00

純文字會被忽略;沒有可辨識數字內容的欄位會被推到表格的底部,無論是升冪或降冪排序。

使用方式

這個外掛程式可透過多種不同方式取得和使用。

瀏覽器

這個外掛程式可在 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/any-number.mjs';

CommonJS

如果您使用 Node 的 CommonJS 載入器(例如使用舊版的 Webpack,或非模組化的 Node 程式碼),請使用以下方法 require 此外掛程式

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

範例

$('#example').dataTable( {
     columnDefs: [
       { type: 'any-number', targets : 0 }
     ]
  } );

版本控制

如果您對如何改進此外掛程式有任何想法,或發現任何錯誤,可以在 GitHub 上取得,我們非常歡迎 pull request!