试图让一个 JS 函数工作,将字符串中的单个字符移动一定量(然后返回新的“移位”字符串)。我正在使用 ROT-13(因此 AM 向下移动 13 个字符,NZ 向上移动 13 个字符)。
问题在于这段代码:
if (arr[i] <= 77) {
finalStr += String.fromCharCode(arr[i] + 13);
此代码应将 E 转换为 R。
E (69) + 13 = R (82)
但是,返回的字符串中应该向下移动 13 个空格的字符返回为奇怪的符号。
“FᬁEEC᧕DECAMᨹ”
function rot13(str) {
var newStr = "";
var finalStr = "";
for (i = 0, j = str.length; i < j; i++) {
newStr += str.charCodeAt(i);
newStr += " ";
}
var arr = newStr.split(" ");
arr.pop();
for (i = 0, j = arr.length; i < j; i++) {
if (arr[i] !== 32) {
if (arr[i] <= 77) {
finalStr += String.fromCharCode(arr[i] + 13);
}
else {
finalStr += String.fromCharCode(arr[i] - 13);
}
}
}
return finalStr;
}
rot13("SERR PBQR PNZC");