2013-06-28 3 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) .join (POS)' – elclanrs

+1

@elclanrs 반복합니다 :'a..z'를,하지만 난 더 나은 방법이있을거야. – paxdiablo

+1

'(ch = null)'이 항상 거짓 인 경우 ('ch === null'을 원했을 때) +40 – JoshRagem

답변

12

replace 메서드는 두 번째 매개 변수로 문자열 또는 함수를 허용합니다. 값을 문자열로 바꾸십시오 : ((temp - temp_integer)+40).toString().

+0

고마워요 !! 내가 그걸 놓쳤다는 것을 믿을 수 없어. 한번 허용 된 대답을 설정합니다. – Chris

+0

숫자 두 번째 인수는 나를 위해 잘 작동합니다. –

+0

@ 토라자 부로 : 웹 스톰을 사용하고 있습니까? – Guffa

3
(temp - temp_integer)+40 

는 숫자 값이고 replace 문자열을 원한다. 그냥 사용

(temp - temp_integer)+40+"" 

당신이 수 (예, 65"65"된다)의 문자열 표현을 원하는 가정. 해당 코드 포인트 ( 65"A"이됩니다)에서 문자을 사용하려면 String.fromCharCode()을 사용해야합니다.

+0

감사합니다 !! 내가 그걸 놓쳤다는 것을 믿을 수 없어. 슬프게도, 받아 들여지는 대답은 @ Guffa (그는 처음이었다, 미안) – Chris

+3

_Damn_ 그 8 초 :-) – paxdiablo

관련 문제