corrade-nucleus-nucleons – Blame information for rev 20
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
20 | office | 1 | /** |
2 | * @author: Brian Huisman |
||
3 | * @webSite: http://www.greywyvern.com |
||
4 | * @version: v1.0.0 |
||
5 | * JS functions to allow natural sorting on bootstrap-table columns |
||
6 | * add data-sorter="alphanum" or data-sorter="numericOnly" to any th |
||
7 | * |
||
8 | * @update Dennis Hernández <http://djhvscf.github.io/Blog> |
||
9 | * @update Duane May |
||
10 | */ |
||
11 | |||
12 | function alphanum(a, b) { |
||
13 | function chunkify(t) { |
||
14 | var tz = [], |
||
15 | x = 0, |
||
16 | y = -1, |
||
17 | n = 0, |
||
18 | i, |
||
19 | j; |
||
20 | |||
21 | while (i = (j = t.charAt(x++)).charCodeAt(0)) { |
||
22 | var m = (i === 46 || (i >= 48 && i <= 57)); |
||
23 | if (m !== n) { |
||
24 | tz[++y] = ""; |
||
25 | n = m; |
||
26 | } |
||
27 | tz[y] += j; |
||
28 | } |
||
29 | return tz; |
||
30 | } |
||
31 | |||
32 | function stringfy(v) { |
||
33 | if (typeof(v) === "number") { |
||
34 | v = "" + v; |
||
35 | } |
||
36 | if (!v) { |
||
37 | v = ""; |
||
38 | } |
||
39 | return v; |
||
40 | } |
||
41 | |||
42 | var aa = chunkify(stringfy(a)); |
||
43 | var bb = chunkify(stringfy(b)); |
||
44 | |||
45 | for (x = 0; aa[x] && bb[x]; x++) { |
||
46 | if (aa[x] !== bb[x]) { |
||
47 | var c = Number(aa[x]), |
||
48 | d = Number(bb[x]); |
||
49 | |||
50 | if (c == aa[x] && d == bb[x]) { |
||
51 | return c - d; |
||
52 | } else { |
||
53 | return (aa[x] > bb[x]) ? 1 : -1; |
||
54 | } |
||
55 | } |
||
56 | } |
||
57 | return aa.length - bb.length; |
||
58 | } |
||
59 | |||
60 | function numericOnly(a, b) { |
||
61 | function stripNonNumber(s) { |
||
62 | s = s.replace(new RegExp(/[^0-9]/g), ""); |
||
63 | return parseInt(s, 10); |
||
64 | } |
||
65 | |||
66 | return stripNonNumber(a) - stripNonNumber(b); |
||
67 | } |