我想我已经接近解决这个问题了。
目标是获取一串“加密”字符并将它们解密为实际单词。也许我的代码现在不是很优雅,我会到达那里,但我可以使用 charCodeAt() 开始'str =“SERR PBQR PNZC”'来返回正确的ASCII码,根据需要加减13,并将其连接到 strArray 中——我知道,它不是一个数组。但是我不能让 strArray 成为一个数组,所以我可以将它传递给 String.fromCharCode(null, strArray); 让它返回正确的解密文本。
我的代码如下:
function rot13(str) { // LBH QVQ VG!
var strArray = '';
//var right = [70, 82, 69, 69, 32, 67, 79, 68, 69, 32, 67, 65, 77, 80];
//used above variable with String.fromCharCode.apply(null, right); and it worked.
for(var i = 0; i < str.length; i++){
//console.log(str.charCodeAt(i));
if(str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 77) {
strArray = strArray.concat(str.charCodeAt(i) + 13, ' ');
} else if(str.charCodeAt(i) >= 78) {
strArray = strArray.concat(str.charCodeAt(i) - 13, ' ');
} else {
strArray = strArray.concat(str.charCodeAt(i), ' ');
}
}
return strArray;
}
// Change the inputs below to test
rot13("SERR PBQR PNZC");
任何帮助将不胜感激。