2013-06-28 9 views
5
var str = name.toUpperCase(); 
var ch = new Array(); 
ch = str.split(''); 

for(var i=0;i<7;i++) 
{ 
    if(ch = null) { 
    result_code.replace(
     pos.toString()+pos.toString()+pos.toString()+pos.toString(), 
     "FFFF"); 
    } else { 
    var temp = parseInt(ch[i]); 
    var temp_integer = 64; 
    if(temp<=122 & temp>=97) { 
     var pos = i+1; 
     result_code.replace(
     pos.toString()+pos.toString()+pos.toString()+pos.toString(), 
     (temp - temp_integer)+40); 
    } 
    } 
} 

このコードはこの行にエラーを生成していますresult_code.replace(pos.toString()+pos.toString()+pos.toString()+pos.toString(), (temp - temp_integer)+40);引数タイプ番号はパラメータタイプ文字列に割り当てられません|機能

下線を引いた情報は、このセクション(temp - temp_integer)+40です。

エラーはArgument type Number is not assignable to parameter type String|Functionです。

このコードで何が問題になっていますか?私はWebStormを使用しています。私はたぶん間違ったことをしているようだ。前もって感謝します!

+1

文字列を繰り返したい場合は、 'new Array(5).join(pos)' – elclanrs

+1

@elclanrs: 'a..z'を実行できますが、もっと良い方法があると確信しています。 – paxdiablo

+1

'(' = null) 'が常に偽である(' ch === null'が必要ですか?)+ 40 – JoshRagem

答えて

12

replaceメソッドは、第2パラメータとして文字列または関数を受け入れます。値を文字列に変換します:((temp - temp_integer)+40).toString()

+0

ありがとう!!私はそれを逃したとは信じられません。それが許せば、受け入れられた答えを設定します。 – Chris

+0

数値の第2引数がうまく動作します。 –

+0

@torazaburo:Webstormを使用していますか? – Guffa

3
(temp - temp_integer)+40 

は数値で、replaceは文字列が必要です。ただ、使用:

(temp - temp_integer)+40+"" 

あなたは番号(たとえば、65"65"なります)の文字列表現をしたいと仮定。 の文字をそのコードポイント(65"A"になります)にする場合は、String.fromCharCode()を使用する必要があります。

+0

ありがとうございます!私はそれを逃したとは信じられません。悲しいことに、受け入れられた答えは@Guffaに行く(彼は最初、ごめんなさい) – Chris

+3

_Damn_それらの8秒:-) – paxdiablo

関連する問題