2010-11-04 51 views
8

如果我在JavaScript中得到了一個Letter,我想按照字母順序找出前一個字母,所以如果輸入是「C」,則輸出必須是「B」。是否有任何標準解決方案或者我是否需要創建一些特殊功能?Javascript:找出字母表中的前一個字母

+7

這可能與你在做什麼並不重要,但請記住,如果你想在國際上正確地做到這一點,下一個/上一個字母的整個業務會非常複雜。下面的解決方案是標準的ASCII /英文爲中心的方法,大家幾十年來一直在做,但它可能不會滿足土耳其或日本... – 2010-11-04 09:11:19

+0

我不得不說,這一個將永遠只能用於德語,英語,法語或意大利語,但從不與其他語言和其他字母。也可以說,這不是一個用戶輸入,所以它與程序一起給出(造船廠,字段名稱例如是B4,並且我正在尋找C4) – 2010-12-08 10:03:08

回答

14
var ch = 'b'; 
String.fromCharCode(ch.charCodeAt(0) - 1); // 'a' 

如果你想周圍的字母環路只是做了檢查專門爲「A」 - 循環,「Z」如果是這樣,否則使用上述方法。

5

這應該在一些箱子工作,你可能需要調整它一點:

function prevLetter(letter) { 
    return String.fromCharCode(letter.charCodeAt(0) - 1); 
} 

如果letterA,其結果是@,所以你需要添加,如果你想要一些健全檢查它是萬無一失的。否則,應該做的工作就好了。

5

從大肚的評論全功能會

function prevLetter(letter) { 
    if (letter === 'a'){ return 'z'; } 
    if (letter === 'A'){ return 'Z'; } 
    return String.fromCharCode(letter.charCodeAt(0) - 1); 
} 
1

這樣的事情應該工作。

function prevLetter(letter) { 
    var code = letter.charCodeAt(0); 
    var baseLetter = "A".charCodeAt(0); 
    if (code>"Z".charCodeAt(0)) { 
     var baseLetter = "a".charCodeAt(0); 
    } 
    return String.fromCharCode((code-baseLetter+25)%26+baseLetter); 
} 
相關問題