String str="{AMT(V-LNE-S001,COST)} / ({Indi(LNE-S003,LNE-COUNT)}+{Indi(LNE-S009,LNE-COUNT)}+{Indi(LNE-S013,LNE-COUNT)}) * {Indi(LNE-S013,LNE-COUNT)}";
我想用正则表达式替换成 String str="A1 / I1+I2+I3 * I";

解决方案 »

  1.   


    怎么着也得替换成
    String str="A1 / (I1+I2+I3) * I";
      

  2.   

    替换的对应关系是啥 
    {AMT(V-LNE-S001,COST)}一定是A1?
    那直接replace("{AMT(V-LNE-S001,COST)}","A1")不久行了
      

  3.   

    大哥 你没明白我的意思 我的意思是用正则表达式比配任意的{AMT(XX)}或者是{Indi(XX)}格式。。 
      

  4.   

    那替换成I1、I2、I3的依据是什么?出现的次序?
      

  5.   

    你们不用管 I1 I2的 意思 如果是Indi开头的替换成I AMT开头的替换成A就可以了!
      

  6.   


    var str="{AMT(V-LNE-S001,COST)} / ({Indi(LNE-S003,LNE-COUNT)}+{Indi(LNE-S009,LNE-COUNT)}+{Indi(LNE-S013,LNE-COUNT)}) * {Indi(LNE-S013,LNE-COUNT)}";
    str=str.replace(/\{AMT\(.+?\)\}/g,"A").replace(/\{Indi\(.+?\)\}/g,"I");
    alert(str);
      

  7.   

    var regex = /{.+?}/g;
    var str = "{AMT(V-LNE-S001,COST)} / ({Indi(LNE-S003,LNE-COUNT)}+{Indi(LNE-S009,LNE-COUNT)}+{Indi(LNE-S013,LNE-COUNT)}) * {Indi(LNE-S013,LNE-COUNT)}";
    str = str.replace(regex,function(w){
        var reg = /{(amt|indi)/i;
        if(reg.test(w)) return RegExp.$1.toString().charAt(0)
    })
    alert(str)