Javascript 当textarea代替input type=text时,写入和解码编码消息的程序会出现故障
我有一个程序,使用加密序列生成和解码秘密消息,消息,字母转换成数字,数字/字母与随机生成的加密序列中的相应数字相加,程序通过减法解码,但为了解释更长的消息,我用了替代,它发出了闪光。你自己看看吧。我已将问题隔离到文本区域。这是我的密码Javascript 当textarea代替input type=text时,写入和解码编码消息的程序会出现故障,javascript,html,char,Javascript,Html,Char,我有一个程序,使用加密序列生成和解码秘密消息,消息,字母转换成数字,数字/字母与随机生成的加密序列中的相应数字相加,程序通过减法解码,但为了解释更长的消息,我用了替代,它发出了闪光。你自己看看吧。我已将问题隔离到文本区域。这是我的密码 解码 留言 这里的加密序列 解码 var seq=document.getElementById(“加密序列”).value; var mes=document.getElementById(“编码消息”).value; var convertedSeqAr
解码
留言
这里的加密序列
解码
var seq=document.getElementById(“加密序列”).value;
var mes=document.getElementById(“编码消息”).value;
var convertedSeqArray=[];
var messageDoneString=“”;
var convertedMesArray=[];
var子数组=[];
var mesArray=[];
var x=0;
var convertedMesArray=[];
var convertedSeqArray=[];
var messageDone=[];
seqArray=[];
var num=“”;
函数toArray(){
mes=document.getElementById(“编码消息”).value;
mesArray=mes.拆分(“”);
seq=document.getElementById(“加密序列”).value;
seqArray=序列拆分(“,”);
convertedSeqArray=seqArray.map(数字);
convertedMesArray=mesArray.map(编号);
对于(var l=0;l
编码信息
编码
var seq=document.getElementById(“序列”);
var cod=document.getElementById(“编码”);
var数组=[];
var输出=document.getElementById(“h”).value.split(“”);
var序列=[];
var sequenceCounter=0;
函数生成序列(长度){
序列=[];
for(var c=0;c
问题在于开头的空格。如果开头有空格,你会看到那些奇怪的字母。我试着用trim()
修复它,但没有成功。出于某种原因,当您复制并粘贴“编码邮件”时,它会在开头粘贴一个空格。可以使用if
语句删除空格
mes = document.getElementById("coded message").value.trim();
mesArray = mes.split(" ");
seq = document.getElementById("encryption sequence").value.trim();
seqArray = seq.split(",");
if (mes[0] === " ")
mes.shift();
if (seq[0] === " ")
seq.shift();
convertedSeqArray = seqArray.map(Number);
convertedMesArray = mesArray.map(Number);
for (var l = 0; l < mesArray.length; l++) {
subArray.push(convertedMesArray[l] - convertedSeqArray[l]);
num = String.fromCharCode(96 + subArray[l]);
messageDone.push(num);
}
for (var q = 0; q < messageDone.length; q++) {
messageDoneString = messageDoneString + messageDone[q];
}
mes=document.getElementById(“编码消息”).value.trim();
mesArray=mes.拆分(“”);
seq=document.getElementById(“加密序列”).value.trim();
seqArray=序列拆分(“,”);
如果(mes[0]==“”)
mes.shift();
如果(序号[0]=“”)
seq.shift();
convertedSeqArray=seqArray.map(数字);
convertedMesArray=mesArray.map(编号);
对于(var l=0;l
我确实使用了
trim
,因为它确实删除了足够多的空格,直到剩下一个为止,还删除了任何额外的空格(不应该出现)。由于两个字符串都变成了数组,我们可以在变量上使用数组函数。“但是我用它来代替较长的消息”我不太明白,你能详细说明一下吗?输入框会切断较长的消息,在切换到textarea
之后,textarea让输入更长的信息变得更容易,看起来也更漂亮。它开始出现故障了?是的。它开始向我反馈错误的字符和错误的数字。我发布了一个答案。另外,我建议您删除
和
之间的空格。这一空间可能会让用户感到沮丧。我知道我在测试时很快就感到沮丧了。Kay,我会试试。如果我使用substring()删除第一个字符,它会起作用,谢谢!