[javascript] 문자열의 일정부분 치환하기

lacovnk의 이미지

function strMod(ori,i,ch){
        return ori.substring(0,i) + ch + ori.substring(i+ch.length,ori.length);
}

이렇게 짜봤는데, 작동을 안합니다. 가장 마지막 부분 - ori.substring(i+ch.length,ori.length) - 이 아무값도 없게 나오기도 합니다.

ex) ori="200";i=1;ch="2" 를 주면, 각각 2/2/0 이 되어야 하는데 alert으로 보면 "2/2/"라고 나와버립니다.

ex) ori="200";i=0 or 2;ch="2" 를 주면 잘 동작합니다;

페이지 로딩이 다 끝난 상태에서 수정하는데 쓰고 있는데 난감하군요 -_-
불새 자바스크립트 콘솔에도 아무말 안뜨고 ;;

return ori.substr(0,i) + ch + ori.substr(i + ch.length,ori.length - i - ch.length);

이것으로 해봐도 결과는 동일하군요 -_-;

도와주세요 ㅠㅠ

랜덤여신의 이미지

<script type="text/javascript">
function strMod(ori,i,ch){
        return ori.substring(0,i) + ch + ori.substring(i+ch.length,ori.length);
}
ori="200";
i=1;
ch="2";
alert(strMod(ori,i,ch));
</script>

220 잘 나옵니다만?

lacovnk의 이미지

알고보니 i가 숫자가 아닌 문자열이었습니다 -_-;
이상하게, 첫부분은 숫자로 잘 해주고, 마지막부분은 처리를 못해주는군요 -_-

parseInt를 추가했습니다 ㅎㅎ 감사합니다!

function strMod(ori,i,ch){
        return ori.substring(0,parseInt(i)) + ch + ori.substring(parseInt(i)+ch.length,ori.length);
}