TypechoJoeTheme

IT技术分享

统计

JS实现Base62的编码与解码

2016-09-23
/
0 评论
/
717 阅读
/
正在检测是否收录...
09/23

直接上代码了

var Base62 = {
    arr: new Array(
        'e', 'M', 'f', '8', 's', 'U', 'v', 'O',
        '1', 'J', 'j', 'U', '0', 'N', 'd', 'L',
        '5', 'o', 'H', 'w', 'f', 'K', 'q', 'A',
        'f', 'i', '7', 'E', 'g', 'd', 'o', 'r',
        '9', 'C', '5', 'p', '0', 'T', 'W', 'l',
        'j', 'Y', 'q', 'H', '1', '8', 'R', 'E',
        'n', 'p', 'u', '3', '1', 'B', 'r', 'd',
        'g', 'e', 'D', 'K', 'F', 's'),

    log10: function (x) {
        return Math.log(x) / Math.log(10)
    }
    ,
    encode: function (str) {
        var out = '';

        for (var t = Math.floor(this.log10(str) / this.log10(62)); t >= 0; t--) {
            var a = Math.floor(str / Math.pow(62, t));
            out += this.arr[a];
            str = str - (a * Math.pow(62, t));
        }

        return out;
    },
    decode: function (str) {
        var out = 0;
        var len = str.length - 1;
        for (var t = 0; t <= len; t++) {
            out = out + this.arr.indexOf(str.substr(t, 1)) * Math.pow(62, len - t);
        }

        return out;
    }
};

Base62.encode(01011);
朗读
赞 · 0
版权属于:

IT技术分享

本文链接:

https://idunso.com/archives/2435/(转载时请注明本文出处及文章链接)