1. 方法
- 字符 → ASCII 碼:
StringValue.charCodeAt()
- ASCII 碼 → 字符:
String.fromCharCode(asciiValue)
2. 打印 26 個字母的 ASCII 碼
var charToASCII = function() {
var charList = "";
for (var i = "a".charCodeAt(); i <= "z".charCodeAt(); i++) {
charList = charList + String.fromCharCode(i) + " —— " + i + "\n";
}
for (var i = "A".charCodeAt(); i <= "Z".charCodeAt(); i++) {
charList = charList + String.fromCharCode(i) + " —— " + i + "\n";
}
console.log(charList);
return charList;
}
charToASCII();
3. 凱撒加密
由于 JavaScript 是弱類型語言豺憔,字母和字母可以做加減運算,所以 JavaScript 中的字符計算就要經(jīng)過 ASCII 碼的轉(zhuǎn)換方仿。
var nextCharacter = function(asciiValue, k) {
var s = asciiValue;
// 獲取給定字母的后面第 k 個字母
if ((s >= 65 && s <= 90) || (s >= 97 && s <= 122)) {
if ((s + k >= 65 && s + k <= 90) || (s + k >= 97 && s + k <= 122)) {
return String.fromCharCode(s + k);
} else {
return String.fromCharCode(s + k - 26);
}
}
// 非字母字符不變化
else {
return String.fromCharCode(s);
}
}
var caesarCipher = function(stringValue, k) { // k 表示每個字母向右移動 k 位
var newString = "";
for (var i = 0; i < stringValue.length; i++) {
newString += nextCharacter(stringValue[i].charCodeAt(), k);
}
return newString;
}
console.log(`Old String: "HelloWord! ^-^", Encrypted String: "${caesarCipher("HelloWord! ^-^", 3)}"`);
輸出結(jié)果:Old String: "HelloWord! ^-^", Encrypted String: "KhoorZrug! ^-^"
這里有個大牛的版本吨悍,用了更多 JavaScript 的特性:凱撒加密解密的 JavaScript 版本