ROT13码意思是将字母左移13位。如'A' ↔ 'N', 'B' ↔ 'O','V' ↔ 'I'。
下面实现ROT13码的解码。
function rot13(str) { var arr = []; for (var i = 0; i < str.length; i++) { if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 77) { arr.push(str.charCodeAt(i) - 64 + 90 - 13); } else if (str.charCodeAt(i) > 77 && str.charCodeAt(i) <= 90) { arr.push(str.charCodeAt(i) - 13); } else { arr.push(str.charCodeAt(i)); } } var newStr = ""; for (var j = 0; j < arr.length; j++) { newStr += String.fromCharCode(arr[j]); } return newStr; } rot13("SERR PBQR PNZC"); //这是编码之后的字符串。
结果是:"FREE CODE CAMP"
注意这里只考虑了大写字母。其中用到的函数:String.prototype.charCodeAt()、String.fromCharCode()