function replace2(val){
 var str="1110101";
 var n = parseInt(str.charAt(val-1));
 return str.substring(0,val-1) + (n^1) + str.substr(val);
}你举例太不好了,不知道是从左数起还是从右数起,这个是从左数起的.

解决方案 »

  1.   

    vary 3Q !
    可以详细解释一下你写的代码,我看不明白?? 
    3Q again!  :)
      

  2.   

    <script language="javascript">
    function replace2(val){
     var str = "1111101";
     val--;
     if(str.replace(eval("/(\\d{"+val+"})(\\d)(\\d*)/"), "$2") == "1")
      str = str.replace(eval("/(\\d{"+val+"})(\\d)(\\d*)/"), "$10$3");
     else
      str = str.replace(eval("/(\\d{"+val+"})(\\d)(\\d*)/"), "$11$3");
     alert(str);
    }
    replace2(4);
    </script>
      

  3.   

    parseInt:转成整数
    charAt:相当于索引(取出某位置的字符)
    substring(a,b):取两位置(a,b)之间的字符串
    substr(a,length):从位置a开始取length个字符串,忽略length时表示一直取到串尾
    ^:异或