<script type="text/javascript">
//<![CDATA[
String.prototype.setCharAt = function (int, string) {
  var s = ""; int=isNaN(parseInt(int))?65536:parseInt(int);
  for (var i=0; i<this.length; i++) s += (i==int?String(string):this.charAt(i));
  return s;
}
var tt="1233";//
tt=tt.setCharAt(3,"never-online")
alert(tt)
//]]>
</script>

解决方案 »

  1.   

    <script type="text/javascript">
    //<![CDATA[
    var tt="123dddddddddddddddddd";
    String.prototype.setCharAt=function(strFor,psti){
    strFor+=''; psti-=0;
    var suc=this; ar=new Array();
    for(var i=0, j=0; i<=suc.length+1; i++, j++){
    if(i==psti){
    ar.push(strFor);
    i++;
    ar[i]=suc.substr(j,1);
    }
    ar[i]=suc.substr(j,1);
    }
    return ar.join('');
    }
    document.write(tt.setCharAt('4',0)+'<br/>');
    document.write(tt.setCharAt('3',1));
    //]]>
    </script>
      

  2.   

    :O 浪费了一个不必要的...<script type="text/javascript">
    //<![CDATA[
    var tt="123dddddddddddddddddd";
    String.prototype.setCharAt=function(strFor,psti){
    strFor+=''; psti-=0;
    var suc=this; ar=new Array();
    for(var i=0, j=0; i<=suc.length+1; i++, j++){
    if(i==psti){
    ar.push(strFor);
    i++;
    }
    ar[i]=suc.substr(j,1);
    }
    return ar.join('');
    }
    document.write(tt.setCharAt('4',0)+'<br/>');
    document.write(tt.setCharAt('3',1));
    //]]>
    </script>
      

  3.   

    :( 还浪费了一个 undefined...<script type="text/javascript">
    //<![CDATA[
    var tt="abcdefghijklmn";
    String.prototype.setCharAt=function(strFor,psti){
    strFor+=''; psti-=0;
    var suc=this; ar=new Array();
    for(var i=0, j=0; i<=suc.length; i++, j++){
    if(i==psti){
    ar.push(strFor);
    i++;
    }
    ar[i]=suc.substr(j,1);
    }
    return ar.join('');
    }
    document.write(tt.setCharAt('4',0)+'<br/>');
    document.write(tt.setCharAt('3',1));
    //]]>
    </script>
      

  4.   

    直接用正则表达式就可以了
    <script language=javascript>
    String.prototype.SetCharAt=function(str,num)
    {
    var re=new RegExp("([\\s\\S]{"+(num-1)+"})[\\s\\S]([\\s\\S]*)")
    return this.replace(re,"$1"+str+"$2")
    }
    alert("12345".SetCharAt("a",2))
    </script>