2017-02-19 4 views
0

文字をUnicodeに変換して1を追加することはできましたが、最終的に文字に変換するのに問題があります。 if文の最後の文がなぜ機能していないのかわかりません。助けてください!Javascript:ユニコード値を文字に戻すにはどうすればよいですか?

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

なぜ、あなたはちょうど1時間前に尋ねた答えに同じ質問をしていますか? –

+0

[Javascriptの可能な重複:文字の文字列をそれぞれのユニコード値に選択的に変換し、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

@brahimmahrir Hmmm。ありがとう、しかし、あなたはなぜこの質問が掲載されたのか疑問に思います。 –

+0

私が理解しているのは、インデックスのiでcharcodeを取得したいと思っていて、65と126の間にあった場合には1だけインクリメントし、数字ではない文字として戻します。元の文字列に 'replace 'を使うよりも新しい文字列になります。例えば' '" 66ABC "'は '' B66CD' 'になります! –

0

あなたはfromCharCode(i)を呼び出しているが、iはへのインデックスです文字列であり、文字コードではありません。文字コード:String.fromCharCode(c+1)などを渡したいとします。

+0

実際、彼は主な問題である 'str'の' fromCharCode() 'を呼び出しています。彼はメソッドに 'i'を渡しています。 –

関連する問題