Javascript Rot13函数根本不工作
我试图解决以下问题: 创建一个函数,该函数接受字符串并返回用Rot13加密的字符串。如果字符串中包含数字或特殊字符,则应按原样返回。只应移动拉丁/英语字母表中的字母,如原始Rot13“实现”中所示 我写了这段代码,但我不知道我做错了什么:Javascript Rot13函数根本不工作,javascript,Javascript,我试图解决以下问题: 创建一个函数,该函数接受字符串并返回用Rot13加密的字符串。如果字符串中包含数字或特殊字符,则应按原样返回。只应移动拉丁/英语字母表中的字母,如原始Rot13“实现”中所示 我写了这段代码,但我不知道我做错了什么: function rot13(message){ var solved = ""; for (i=0; i<message.length; i++){ var asciiNum = message[i].charCodeAt();
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;
}
功能rot13(消息){
var=”;
对于(i=0;i=65&&ascinum=78&&ascinum,您的代码只考虑大写字符
小写字符的ASCII值从97开始。
我通过以下方式更改代码来解决问题:
function rot13(text) {
var source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var target = "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM";
var out = "";
for (var l=0; l<text.length; l++) {
var p = source.indexOf(text[l]);
out += p>0 ? target[p] : text[l];
}
return out;
}
函数rot13(文本){
var source=“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz”;
var target=“nopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklm”;
var out=“”;
对于(var l=0;l0?目标[p]:文本[l];
}
返回;
}
预期的输出是什么?你得到了什么?“但我不知道我做错了什么。”–然后请先阅读。你在这里问错的是,你没有描述它是如何出错的,你也没有提供示例数据。