2017-02-19 41 views
0

我已經能夠成功地將我的字符轉換爲Unicode,然後添加1,但是我最後轉換回字符時遇到問題。我不確定爲什麼if語句中的最後一個語句不起作用。請幫忙!Javascript:如何將我的Unicode值轉換回字符?

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

[Javascript:我可以如何選擇性地將字符串轉換爲各自的Unicode值,添加1,然後再轉換回字符串?](http://stackoverflow.com/questions/42331718/javascript-how-我可以選擇性地將字符串轉換爲它們的響應) –

回答

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");

+0

將您置於上下文中:這裏是原始問題http://stackoverflow.com/q/42331718/6647153! –

+0

@ibrahimmahrir嗯。謝謝,但讓你想知道爲什麼發佈這個問題。 –

+0

我所理解的是,他希望在索引'i'處獲得charcode,如果它在65和126之間,則將其加1,並將其作爲字符而不是數字,如果他積累了導致一個新的字符串,而不是使用原來的「替換」,這可能會導致錯誤(例如66ABC變成了B66CD) –

0

要調用fromCharCode(i),但i是索引字符串,而不是字符代碼。你想傳遞字符代碼:String.fromCharCode(c+1)或其他什麼。

+0

實際上,他在'str'上調用'fromCharCode()',這是主要問題。他正在將'i'傳遞給方法。 –

相關問題