複製代碼代碼如下:
函數Zipnum(num,radix){
如果(!zipnum.zip){
zipnum.zip = function(inputnum){
if(inputnum> 35){//用大寫字母表示36-61
return String.fromcharcode('a'.CharCodeat(0) + inputnum%36);
} else if(inputnum> 9){//用小寫字母表示10-35
return String.fromcharcode('A'.CharCodeat(0) + InputNum%10);
} 別的 {
返回inputnum;
}
}
}
var商= num,餘數,結果;
如果(radix> 36 && radix <63){
結果= [];
做 {
剩餘=商%radix;
商= parseint(商 / radix);
result.push(zipnum.zip(剩餘));
} while(商> radix);
剩餘=商%radix;
如果(剩餘!== 0){
result.push(zipnum.zip(剩餘));
}
結果= result.reverse()。join('');
} else if(radix> 1 && radix <36){
結果= num.tostring(radix);
} 別的 {
結果= num;
window.console && console.warn('radix參數必須在2至62'之間)
}
返回結果;
}
功能testsortnum(){
assertequals(Zipnum(61,62),'z');
assertequals(Zipnum(62 * 2-1,62),'1z');
assertequals(Zipnum(62 * 3-1,62),'2z');
assertequals(Zipnum(1361182624991,62),'dxn5fjb');
}
testSortnum();