1 | (function (global, factory) {
|
2 | if (typeof define === "function" && define.amd) {
|
3 | define([], factory);
|
4 | } else if (typeof exports !== "undefined") {
|
5 | factory();
|
6 | } else {
|
7 | var mod = {
|
8 | exports: {}
|
9 | };
|
10 | factory();
|
11 | global.bootstrapTableNaturalSorting = mod.exports;
|
12 | }
|
13 | })(this, function () {
|
14 | "use strict";
|
15 |
|
16 | |
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 | function alphanum(a, b) {
|
28 | function chunkify(t) {
|
29 | var tz = [],
|
30 | x = 0,
|
31 | y = -1,
|
32 | n = 0,
|
33 | i,
|
34 | j;
|
35 |
|
36 | while (i = (j = t.charAt(x++)).charCodeAt(0)) {
|
37 | var m = i === 46 || i >= 48 && i <= 57;
|
38 | if (m !== n) {
|
39 | tz[++y] = "";
|
40 | n = m;
|
41 | }
|
42 | tz[y] += j;
|
43 | }
|
44 | return tz;
|
45 | }
|
46 |
|
47 | function stringfy(v) {
|
48 | if (typeof v === "number") {
|
49 | v = "" + v;
|
50 | }
|
51 | if (!v) {
|
52 | v = "";
|
53 | }
|
54 | return v;
|
55 | }
|
56 |
|
57 | var aa = chunkify(stringfy(a));
|
58 | var bb = chunkify(stringfy(b));
|
59 |
|
60 | for (x = 0; aa[x] && bb[x]; x++) {
|
61 | if (aa[x] !== bb[x]) {
|
62 | var c = Number(aa[x]),
|
63 | d = Number(bb[x]);
|
64 |
|
65 | if (c == aa[x] && d == bb[x]) {
|
66 | return c - d;
|
67 | } else {
|
68 | return aa[x] > bb[x] ? 1 : -1;
|
69 | }
|
70 | }
|
71 | }
|
72 | return aa.length - bb.length;
|
73 | }
|
74 |
|
75 | function numericOnly(a, b) {
|
76 | function stripNonNumber(s) {
|
77 | s = s.replace(new RegExp(/[^0-9]/g), "");
|
78 | return parseInt(s, 10);
|
79 | }
|
80 |
|
81 | return stripNonNumber(a) - stripNonNumber(b);
|
82 | }
|
83 | }); |
\ | No newline at end of file |