javascript - 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 很酷!”
解决方案
您的代码仅考虑大写字符。
小写字符的 ASCII 值从 97 开始。 https://theasciicode.com.ar/
推荐阅读
- c++ - std::function 作为类的朋友
- r - 将 R 脚本从 8 到 6 小时之间的时间范围更改为 24 小时(一切)
- android - 从通知启动时防止重新创建活动活动
- java - for 循环没有在单值事件侦听器中运行
- node.js - 使用递归 glob 模式运行的 Mocha 不会在 Mac 上运行所有测试
- reactjs - 是的,动态复选框字段的验证
- sql - 有没有办法在 SQL 中返回列的最大值?
- python - Python dict 文字和 dict(list of pairs) 是否保持它们的键顺序?
- python - 如何在列表列表中的对之间获取特定大小的所有唯一联合?
- python - 我不能等待来自 __init__ 的 func()