2013-06-28 156 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

如果你想重複一個字符串,你可以做'新的Array(5)。加入(POS)' – elclanrs

+1

@elclanrs:'a..z',但我敢肯定有一個更好的辦法。 – paxdiablo

+1

把一個'+ 「」'後+ 40 – JoshRagem

回答

12

replace方法接受一個字符串或函數作爲第二個參數。將您的值轉換爲字符串:((temp - temp_integer)+40).toString()

+0

謝謝!不能相信我錯過了這一點。一旦它允許我會設置接受的答案。 – Chris

+0

數字第二個參數適合我。 – 2015-10-27 05:20:48

+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_那八秒鐘:-) – paxdiablo

相關問題