我们可以利用到一个方法是“String.fromCharCode()”,传入一个Unicode值,返回对应的字符串。而A、B、C、D...是从65开始算起,这时候我们就可以根据我们传入的数字获得对应的字母了。
String.fromCharCode(64 + 1) // A为字母排序中第一个,所以得到的值是A
而对于大于26的排序值要怎么对应字母呢?我们可以通过除以26然后取余,拿到的值再拼接就好啦
function changeIntoAlpha (num) {
var alpha = '';
if (num >= 1 && num <= 26) { //如果数值在1到26之间,直接获取对应的字母
alpha = String.fromCharCode(64 + parseInt(num));
} else {
while (num > 26) { //如果数值大于26,通过除以26,除得的整数作为前一个排序的值,取余作为后一个排序的值,然后拼接
var count = parseInt(num / 26);
var remainder = num % 26;
if (remainder == 0) {
remainder = 26;
count--;
}
alpha = String.fromCharCode(64 + parseInt(remainder)) + alpha;
num = count;
}
alpha = String.fromCharCode(64 + parseInt(num)) + alpha;
}
return alpha;
}
例:
changeIntoAlpha(27) // AA
changeIntoAlpha(702) // ZZ
想要拿到小写英文字母,直接在拿到的值上toLowerCase()就可以啦!