| /** | 
|  * @author: Brian Huisman | 
|  * @webSite: http://www.greywyvern.com | 
|  * @version: v1.0.0 | 
|  * JS functions to allow natural sorting on bootstrap-table columns | 
|  * add data-sorter="alphanum" or data-sorter="numericOnly" to any th | 
|  * | 
|  * @update Dennis Hernández <http://djhvscf.github.io/Blog> | 
|  * @update Duane May | 
|  */ | 
|   | 
| function alphanum(a, b) { | 
|   function chunkify(t) { | 
|     var tz = [], | 
|         x = 0, | 
|         y = -1, | 
|         n = 0, | 
|         i, | 
|         j; | 
|   | 
|     while (i = (j = t.charAt(x++)).charCodeAt(0)) { | 
|       var m = (i === 46 || (i >= 48 && i <= 57)); | 
|       if (m !== n) { | 
|         tz[++y] = ""; | 
|         n = m; | 
|       } | 
|       tz[y] += j; | 
|     } | 
|     return tz; | 
|   } | 
|   | 
|   var aa = chunkify(a); | 
|   var bb = chunkify(b); | 
|   | 
|   for (x = 0; aa[x] && bb[x]; x++) { | 
|     if (aa[x] !== bb[x]) { | 
|       var c = Number(aa[x]), | 
|           d = Number(bb[x]); | 
|   | 
|       if (c == aa[x] && d == bb[x]) { | 
|         return c - d; | 
|       } else { | 
|           return (aa[x] > bb[x]) ? 1 : -1; | 
|       } | 
|     } | 
|   } | 
|   return aa.length - bb.length; | 
| } | 
|   | 
| function numericOnly(a, b) { | 
|     function stripNonNumber(s) { | 
|         s = s.replace(new RegExp(/[^0-9]/g), ""); | 
|         return parseInt(s, 10); | 
|     } | 
|   | 
|     return stripNonNumber(a) - stripNonNumber(b); | 
| } |