本帖最后由 liuxu430524 于 2013-07-10 18:57:22 编辑

解决方案 »

  1.   

    var str=",42:5.000,142:8.00,";
    var a = "42", n = "12.00";
    str=str.replace(new RegExp("((^|,)"+a+":)[^,]+"),"$1"+n);
    alert(str);
      

  2.   

    呵呵,换个角度,跟你说个取巧的方法吧
    1:将,42:5直接替换成,42:12
    2:将,142:8直接替换成,142:13
    replace()函数直接替换就成
      

  3.   

    var str=",42:5.000,142:8.00,";
    arr = str.split(',');
    for(var i=0; i<arr.length; i++) {
      if(arr[i].indexOf(':') != -1) {
        arrs = arr[i].split(':');
        if(arrs[0] == '42') arrs[1] = '12.00';
        if(arrs[0] == '142') arrs[1] = '13.000';
        arrs = arrs.join(':');
        arr[i] = arrs;
      } 
    }
    str = arr.join(',');
    alert(str);
      

  4.   

    设变量获取“:”和“,”所在的索引   用indexof截取索引间的字符串   and 替换~~~  具体怎么写忘了