corrade-nucleus-nucleons – Blame information for rev 20

Subversion Repositories:
Rev:
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 }