2013-06-12 50 views
1

在JavaScript中,通過數字生成簡短的唯一字母ID最好的方法是什麼?例如1將是A,2將是B,27將是AA。基於Javascript字母的唯一ID

+7

我聞功課;) – AlienWebguy

+0

我想這個問題也是在這裏進行處理:http://stackoverflow.com/questions/8240637/javascript -convert-numbers-to-letters-beyond-the-26-character-alphabet – tbsalling

回答

4

Base26阿爾法編碼的數目。這將將其從數字轉換爲文本表示形式,就像在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(); 
} 
+0

非常完美,非常感謝。 – user2117190

+0

+1你打我:) – AlienWebguy