我已经能够成功地将我的字符转换为Unicode,添加1,但是我在转换回字符的最后一步时遇到了麻烦。我不知道为什么if语句中的最后一个语句不起作用。请帮忙!
function LetterChanges(str) {
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i);
if (c > 64 && c < 127) {
str = str.replace(str.charAt(i), c + 1);
str = str.replace(str.charAt(i), str.fromCharCode(i));
}
}
console.log(str);
}
LetterChanges("hello*3");
答案 0 :(得分:0)
fromCharCode
应在String
对象本身上作为您将实例传递到的静态方法调用。
此外,charAt(i)
在功能上等同于[i]
。
虽然我不确定你在这之后是什么,但你可以在这里看到它的实现:
function LetterChanges(str) {
for(var i = 0; i < str.length; i++){
var c = str.charCodeAt(i);
if(c > 64 && c < 127){
str = str.replace(str[i], String.fromCharCode(c + 1));
}
}
console.log(str);
}
LetterChanges("hello*3");
答案 1 :(得分:0)
您正在调用fromCharCode(i)
,但i
是字符串的索引,而不是字符代码。您想传递字符代码:String.fromCharCode(c+1)
或其他任何内容。