Str是一个数字。因此String.charCodeAt()应该可以正常工作。我的代码出错了吗?
function rot13(str) { // LBH QVQ VG!
var tempNums = "";
for(i = 0; i < str.length; i++) {
if(str.charCodeAt(i) <= 78 && str.charCodeAt(i) > 64) {
var tempLocalNum = str.charCodeAt(i) + 13;
tempNums += tempLocalNum;
}
else if(str.charCodeAt(i) > 78 && str.charCodeAt(i) < 91) {
var tempLocalNumMin = str.charCodeAt(i) - 13;
tempNums += tempLocalNumMin;
}
else {
tempNums += str.charCodeAt(i);
}
}
var newStr = String.fromCharCode(tempNums);
return newStr;
}
rot13(“SERR PBQR PNZC”);
答案 0 :(得分:0)
不确定这应该是什么,但我在指示的地方做了一些改变。这有用吗:
function rot13(str) { // LBH QVQ VG!
var tempNums = "";
for(i = 0; i < str.length; i++) {
if(str.charCodeAt(i) <= 78 && str.charCodeAt(i) > 64) {
var tempLocalNum = str.charCodeAt(i) + 13;
tempNums += String.fromCharCode(tempLocalNum);//here
}
else if(str.charCodeAt(i) > 78 && str.charCodeAt(i) < 91) {
var tempLocalNumMin = str.charCodeAt(i) - 13;
tempNums += String.fromCharCode(tempLocalNumMin);//here
}
else {
tempNums += String.fromCharCode(str.charCodeAt(i));//here
}
}
//var newStr = String.fromCharCode(tempNums);//here
return tempNums;//newStr;//and here
}
答案 1 :(得分:0)
目前尚不清楚你想要实现的目标。
但var tempNums = "";
会根据您正在执行的操作返回7082696932677968693267917780
&amp;做String.fromCharCode(tempNums)
;不会返回任何结果。
同样var tempNums = 0;
将产生952并且String.fromcharCode(tempNums)
正在产生θ(Theta)
Here是我在jsfiddle
中尝试过的