/*
 * @param {Object} oldValue 将  替换
 * @param {Object} newValue 替换为
 * @memberOf {String} 
 * @return {String} 
 */
String.prototype.replaceAll = function(oldValue,newValue) { 
return this.replace(new RegExp(oldValue,"gm"),newValue);
}这是一个全部替换的方法;
问题:
要替换的内容中有中括号var divHTML='listfinishDetail[3].taskDetail.id,listfinishDetail[3].name,listfinishDetail[3].size'
要把  divHTML的[3]替换成[4]
divHTML.replaceAll('[3]','[4]') ,然后就不好使了。这个[3]不是固定的,下一次可能就是[4],换成[5]了,replaceAll这个方法应该怎么解决?
求帮助~~~!!!!!!!!!!!!

解决方案 »

  1.   

    不明白楼主意思,现在可以替换啊。
    String.prototype.replaceAll = function(oldValue,newValue) {  
    return this.replace(new RegExp(oldValue,"gm"),newValue);
    }
    var divHTML='listfinishDetail[3].taskDetail.id,listfinishDetail[3].name,listfinishDetail[3].size'
    alert(divHTML.replaceAll('[3]','[5]'))
      

  2.   

    楼主是要[n]变在[n+1]?var divHTML='listfinishDetail[3].taskDetail.id,listfinishDetail[3].name,listfinishDetail[3].size'
    divHTML.replace(/\[(\d+)\]/g,function(d){return d.replace(/\d+/,function(d){return parseInt(d)+1})})
    "listfinishDetail[4].taskDetail.id,listfinishDetail[4].name,listfinishDetail[4].size"或者divHTML.replace(/\d+/g,function(d){return parseInt(d)+1});
    "listfinishDetail[4].taskDetail.id,listfinishDetail[4].name,listfinishDetail[4].size"
      

  3.   

    <script type="text/javascript">
    var a="[1]2[][3]";
    var reg=/(\[)(\d+)(\])/g;
    a=a.replace(reg,mm);
    function mm(a){
    var b=parseInt(a.substring(1,a.length-1))+1;
    return a.substring(0,1)+b+a.substring(a.length-1);
    }
    alert(a);
    </script>
    这样?