首页 > 解决方案 > Javascript Rot13 函数根本不起作用

问题描述

我正在尝试解决以下练习:

“创建一个函数,该函数接受一个字符串并返回使用 Rot13 加密的字符串。如果字符串中包含数字或特殊字符,则应按原样返回。仅应移动拉丁/英语字母表中的字母,如原始的 Rot13 “实现”。

我写了这段代码,但我不知道我做错了什么:

function rot13(message){
  var solved = "";
  for (i=0; i<message.length; i++){
    var asciiNum = message[i].charCodeAt();
    if (asciiNum >= 65 && asciiNum <= 77) {
      solved += String.fromCharCode(asciiNum + 13);
      } else if (asciiNum >= 78 && asciiNum <= 90) {
        solved += String.fromCharCode(asciiNum - 13);
      } else {
        solved += message[i];
      }
    }
    return solved;
}

通过使用输入:“Ruby 很酷!” 为了测试代码,预期的输出应该是“Ehol vf pbby!”。相反,我得到的是“Euby 很酷!”

标签: javascript

解决方案


您的代码仅考虑大写字符。

小写字符的 ASCII 值从 97 开始。 https://theasciicode.com.ar/


推荐阅读