2016-03-10 18 views
0

我如何獲得一個大寫字母在Javascript小寫如何獲取一個大寫的小寫的ASCII碼在Javascript

我明白我可以使用toLowerCasetoUpperCase做到這一點的ASCII碼,但我不牛逼希望使用他們在這樣的場景:

因此,假設我有這樣的:

var string = "ABC".charCodeAt(0) //which returns 65 for character 'A' 

如何做我得到「A」的情況下不使用toLowerCase

原因:我試圖建立一個custommized toLowerCase和依據是什麼,我們正在努力

請原諒我,如果這是不可能的toUpperCase。我只是需要一個解決方案

+2

爲什麼你不想使用'toLowerCase'? –

+0

我想你必須將大寫字母映射爲小寫字母,並創建一個返回其小寫字母的方法。但是,不使用toLowerCase的原因是什麼? – Matthijs

+0

我試圖建立一個定製的'toLowerCase'和'toUpperCase' – Digitlimit

回答

4

如果你肯定靶向ASCII字符只有(這似乎是在2016年在網絡上真的無用,IMO),你可以簡單地添加32到它。

大寫字符,並且以標準ASCII小寫字符之間的距離爲32。

A : 65 a : (65 + 32) = 97 
B : 66 b : (66 + 32) = 98 
C : 67 c : (67 + 32) = 99 
... 

代碼

function asciiOnlyToLowerCase(input) { 
    var result = ''; 
    for (var i = 0; i < input.length; ++i) { 
     var charCode = input.charCodeAt(i); 
     if (charCode < 65 || charCode > 90) { 
      // NOT an uppercase ASCII character 
      // Append the original character 
      result += input.substr(i, 1); 
     } else { 
      // Character in the ['A'..'Z'] range 
      // Append the lowercase character 
      result += String.fromCharCode(charCode + 32); 
     } 
    } 
    return result; 
} 

這裏是一個工作的jsfiddle:https://jsfiddle.net/atornblad/ym6znv6z/

這裏是維基百科上的ASCII文章:https://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters

意見:

這是說,你應該真的去使用toLowerCase()toLocaleLowerCase(),根據您的需要。這需要處理超過20世紀80年代和90年代常見的編碼問題。通過標配功能,你會得到與現實世界的場景,如非英文字符,非拉丁字符,多字節字符,等等...幫助

我寫的代碼可能是無論你在做什麼,錯誤的解決方案

+0

你是一個救星!非常感謝 – Digitlimit

相關問題