<SCRIPT LANGUAGE="JavaScript1.2">
re=/([a-zA-z])/gi;
str="a=(b/c+100)*20%";
newstr=str.replace(re,"$1.value");
alert(newstr)
</SCRIPT>

解决方案 »

  1.   

    谢谢,楼上;
    如果是这样的式子如何得到
    原结果:atext1=(btext/ctext+100)*20%
    替换后结果:atext1.value=(btext.value/ctext.value+100)*20%
      

  2.   

    <SCRIPT LANGUAGE="JavaScript1.2">
    re=/([a-zA-z]text\b)/gi;
    str="atext1=(btext/ctext+100)*20%";
    newstr=str.replace(re,"$1.value");
    alert(newstr)
    </SCRIPT>
      

  3.   

    var str="atext1=(btext/ctext+100)*20%";
    str=str.replace(/([a-z]+\d*)/gi, "$1.value");
    alert(str);
      

  4.   

    再修正一下, 对于数字出现在字符串中间的情况(bt234ext)  var str="atext1=(bt234ext/ctext+100)*20%";
      str=str.replace(/([a-z]\w*\b)/gi, "$1.value");
      alert(str);
      

  5.   

    <SCRIPT LANGUAGE="JavaScript1.2">
    re=/([a-zA-Z]+([0-9]?))/gi;
    str="aaa1=(bdff/fffc+100)*20%";
    newstr=str.replace(re,"$1.value");
    alert(newstr)
    </SCRIPT>
      

  6.   

    vivianfdlpw() 的正则写得太死了, 并且对 atext1 还没有正确匹配
    scoutlin(梅川库子) 对于 bd555ff 中间出现数字的情况没有判断
      

  7.   

    修正一下
    <SCRIPT LANGUAGE="JavaScript1.2">
    re=/([a-zA-Z]+([0-9]*)[a-zA-Z]*)/gi;
    str="aaa1=(bd11ff/fffc1+100)*20%";
    newstr=str.replace(re,"$1.value");
    document.write(newstr)
    </SCRIPT>
      

  8.   

    scoutlin(梅川库子) 你既然已经加了 i 那么 [a-zA-Z] 这里面就是重复写了, 且
    ([0-9]*)[a-zA-Z]*) 合并一下就是 \w 因为在控件命名里是允许 _ 的, 所以你的正则最后改为:  var str="atext1=(bt234ext/ctext+100)*20%";
      str=str.replace(/([a-z]\w*\b)/gi, "$1.value");
      alert(str);还是回到了上面那个回复中去了.