【发布时间】:2016-01-10 03:40:04
【问题描述】:
如何将给定字符串中的每个字母在字母表中向下移动 N 个位置?标点、空格和大小写应保持不变。例如,如果字符串是“ac”并且 num 是 2,则输出应该是“ce”。我的代码有什么问题?它将字母转换为 ASCII 并添加给定的数字,然后从 ASCII 转换回字母。最后一行替换空格。
function CaesarCipher(str, num) {
str = str.toLowerCase();
var result = '';
var charcode = 0;
for (i = 0; i < str.length; i++) {
charcode = (str[i].charCodeAt()) + num;
result += (charcode).fromCharCode();
}
return result.replace(charcode.fromCharCode(), ' ');
}
我来了
TypeError: charcode.fromCharCode is not a function
【问题讨论】:
-
charcode是一个数字,一个数字没有fromCharCode的功能,你要找的是:String.fromCharCode -
您的用法不正确。 String.fromCharCode 是一种将 unicode 数字转换为字符串的方法。 w3schools.com/jsref/jsref_fromCharCode.asp
标签: javascript string