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));