Natural Sort
JavaScript
function sortla(a, b, desc){
var ax = a;
var bx = b;
var t = desc ? -1 : 1;
var f = t*-1;
console.log('max is ' +Math.max(ax.length, bx.length));
for (var i = 0; i < Math.max(ax.length, bx.length) ; i++) {
//console.log(ax[i]);
//console.log(bx[i]);
if(ax[i] === undefined) return f;
else if(bx[i] === undefined) return t;
else{
var as = ax.substr(i), bs = bx.substr(i);
var an = parseInt(as), bn = parseInt(bs);
if (!isNaN(an) && !isNaN(bn)) {
//console.log(an);
//console.log(bn);
if(an === bn){
i = i + an.toString().length - 1;
//console.log(i);
continue;
}
//console.log('exit nan');
return an > bn ? t : f;
} else {
if (ax[i] === bx[i])
continue;
//console.log('exit reg');
return ax[i] > bx[i] ? t : f;
}
}
}
//console.log('exit 0');
return 0;
}
$(document).find('body').append(sortla("sds98N", "20000", true));