在javascript中使用数字和字母计数的单个数字

时间:2012-06-26 20:56:12

标签: javascript numbers counting

  

可能重复:
  Convert a number to the shortest possible character string while retaining uniqueness

我想数一些东西而且我只有一个数字来报告结果,所以我想用数字来代替数字> 9.例如

1 => 1
5 => 5
10 => A
30 => U
55 => u   // I may have an off-by-one error here -- you get the idea
>61 => z  // 60 will be more than enough, so I'll use z to mean "at least 62"

使用javascript最简单的方法是什么?

3 个答案:

答案 0 :(得分:0)

这是实现这一目标的众多方法之一:

function num2letter(num) {
    if( num > 61) return "z";
    if( num < 0) return num;
    return "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[num];
}

答案 1 :(得分:0)

我认为36号基地足够好了:

function oneDigit(n) {
    var BASE=36;
    if (n >= BASE-1) { n = BASE-1; }
    return n.toString(BASE);
}

答案 2 :(得分:0)

另一种方法:

function parse(x)
{
    if(x<10)return x;
    else if(x<36)return String.fromCharCode(x+55).toUpperCase();
    else if(x<62)return String.fromCharCode(x+29).toLowerCase();
    else return "z";
}

这个小小的测试:

var res="";
for(var a=-10;a<70;a++)res+=a+" -> "+parse(a)+"\n";
alert(res);

小提琴:http://jsfiddle.net/nD59z/4/

同样的方式,但字符少,难以理解:

function parse(x)
{
    return x<10?x:(x<36?String.fromCharCode(x+55).toUpperCase():(x<62?String.fromCharCode(x+29).toLowerCase():"z"));
}
相关问题