基于Javascript字母的唯一ID

use*_*190 2 javascript

用javascript从数字生成简短的唯一字母ID的最佳方法是什么。例如1将是A,2将是B,而27将是AA。

Rob*_*vey 5

Base26对数字进行Alpha编码。 就像在Excel电子表格中一样,这会将其从数字转换为文本表示形式。

参见此处以获取适用算法的代码表示形式:http : //frugalcoder.us/post/2011/02/24/Convert-an-integer-to-a-base26-alpha-string.aspx

function intToAlpha26String(input) {
    input = (+input).toString(26);
    var ret = [];
    while (input.length) {
        var a = input.charCodeAt(input.length-1);
        if (input.length > 1)
            input = (parseInt(input.substr(0, input.length - 1), 26) - 1).toString(26);
        else
            input = "";

        if (a >= 48/*'0'*/ && a <= 57 /*'9'*/)
            ret.unshift(String.fromCharCode(a + 49)); //raise to += 'a'
        else
            ret.unshift(String.fromCharCode(a + 10)); //raise + 10 (make room for 0-9)
    }
    return ret.join('').toUpperCase();
}
Run Code Online (Sandbox Code Playgroud)