在说明一下公式还有可能是
3A+4A=5A+6A-7A+.....
请大家想全一点就是要左边的和右边的根据=号拆分
就是中间的符号不知道该怎么半
谁有间接方法试着改一下那个公式也可以

解决方案 »

  1.   

    还有 
    document.getElementsByName('4A').value[0]
    应该写成这样才对吧
    document.getElementsByName('4A')[0].value
      

  2.   

    var a="3A=4A+13A";
    .........
    ...........中间的省略号转成这样
    document.getElementsByName('3A').value[0]=document.getElementsByName('4A').value[0]+document.getElementsByName('13A').value[0];答案:
    a.replace("+","').value[0]+document.getElementsByName('");
    a.replace("-","').value[0]-document.getElementsByName('");
    a.replace("*","').value[0]*document.getElementsByName('");
    a.replace("=","').value[0]=document.getElementsByName('");
    var s="";
    s="document.getElementsByName('"+a+"').value[0]";
    eval(s);
      

  3.   

    var f = "3A+4A=5A+6A-7A";
    f = f.replace(/(\w+)(?=\+|\-|\*|\/|\=)?/g, "document.getElementsByName('$1')[0].value");
    alert(f);
      

  4.   

    var re=new RegExp('(\W)','g');
    re.exec(a);
    for (i=0;i<RegExp.length;i++)
     a.replace(RegExp[i],"').value[0]"+RegExp[i]+"document.getElementsByName('");
    eval("document.getElementsByName('"+a+"').value[0];");上面是自动识别符号的,没测试,理论可行
      

  5.   

    测试了一下好像下面这样就能正常转换了
    var f = "3A+4A=5A+6A-7A";
    f = f.replace(/(\w+)/g, "document.getElementsByName('$1')[0].value");
    alert(f);最简化:eval("3A+4A=5A+6A-7A".replace(/(\w+)/g,"document.getElementsByName('$1')[0].value"));
      

  6.   

    基本解决问题了还有一点
    就是document.getElementsByName('$1')[0].value
    这个值我要转为整数相加
    我用parseInt报错
    不能给涵数返回值赋值
      

  7.   

    顺便解释一下
    replace(/(\w+)/g
    是什么意思?