gpt4 book ai didi

javascript - 凯撒密码移位javascript问题

转载 作者:行者123 更新时间:2023-12-01 01:29:08 25 4
gpt4 key购买 nike

对于一个学校项目,我正在尝试创建一个有关加密方法的网站,但现在我的凯撒网站遇到了问题。我检查了很多次,但我无法找出我的代码问题出在哪里。我认为这种转变是错误的,但我不知道我可以改变什么来使其发挥作用,如果有人可以帮助我,我会很高兴。

所以,这是 html 部分:

<form name="formu" action="">
<label for="pseudo">Your text :</label>
<br>
<textarea name="text" id="text_encode" style="width: 30%;height: 200px">
</textarea>
<br>
<br>

<label for="methods">Select your methods : </label>
<br>
<br>
<select name="methods" id="methods">

<option value="Caesar">Caesar</option>


</select>
<br>
<br>
<input type="button" value="Encrypt" onClick=encryption()>


<br>
<br>
<textarea name="text" id="text_decoded" style="width: 30%;height: 200px"
readonly="readonly"></textarea>
</form>

这是我的 JavaScript 代码:

function encryption() {    
switch(document.getElementById("methods").value) {
case "Caesar":
var str = document.getElementById("text_encode").value;
var amount = prompt("Number of shift");
var output = "";

for (var i = 0; i < str.length; i ++) {
var c = str[i];
var code = str.charCodeAt(i);

if ((code >= 65) && (code <= 90))
c = String.fromCharCode(((code - 65 + amount) % 26) + 65);
else if ( (code >= 97) && (code <= 122) )
c = String.fromCharCode(((code - 97 + amount) % 26) + 97);

output += c;
}
document.getElementById("text_decoded").value=output;
break;
}
}

如果你想直接测试问题所在,也可以到这里:https://www.w3schools.com/code/tryit.asp?filename=FXJU1NAG37C0

最佳答案

错误是这一行:

var amount = prompt("Number of shift");

默认情况下返回一个字符串,但它可能包含一个数字 - 因此如果我在提示框中输入 10amount 将是:

amount = "10"

要解决此问题,您需要将字符串解析为整数:

var amount = Number(prompt("Number of shift"));

那么你的代码应该可以工作。

关于javascript - 凯撒密码移位javascript问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53462259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com