如何将javascript中的字母增加到下一个字母?

时间:2017-03-29 13:56:14

标签: javascript

我想要一个可以从A到B,B到C,从Z到A的功能。

我的功能目前是这样的:

function nextChar(c) {
    return String.fromCharCode(c.charCodeAt(0) + 1);
}
nextChar('a');

适用于A到X,但是当我使用Z时,它会转到[而不是A。

4 个答案:

答案 0 :(得分:4)

您可以parseInt使用radix 36,使用相反的方法Number#toString使用相同的基数,并对值进行修正。



function nextChar(c) {
    var i = (parseInt(c, 36) + 1 ) % 36;
    return (!i * 10 + i).toString(36);
}

console.log(nextChar('a'));
console.log(nextChar('z'));




答案 1 :(得分:2)

简单的条件。



function nextChar(c) {
    var res = c == 'z' ? 'a' : c == 'Z' ? 'A' : String.fromCharCode(c.charCodeAt(0) + 1);
    console.log(res);
}
nextChar('Z');
nextChar('z');
nextChar('a');




答案 2 :(得分:2)



function nextLetter(s){
    return s.replace(/([a-zA-Z])[^a-zA-Z]*$/, function(a){
        var c= a.charCodeAt(0);
        switch(c){
            case 90: return 'A';
            case 122: return 'a';
            default: return String.fromCharCode(++c);
        }
    });
}

console.log("nextLetter('z'): ", nextLetter('z'));

console.log("nextLetter('Z'): ", nextLetter('Z'));

console.log("nextLetter('x'): ", nextLetter('x'));




Reference

答案 3 :(得分:2)

function nextChar(c) {
        return String.fromCharCode((c.charCodeAt(0) + 1 - 65) % 25) + 65);
}

其中65代表ASCII表中0的偏移量,25表示在第25个字符后它将从头开始(偏移字符代码除以25,你得到的余数偏回到正确的ASCII代码)