读书人

怎么把字符串表达式转为可运算的表达式

发布时间: 2012-06-19 14:45:20 作者: rapoo

如何把字符串表达式转为可运算的表达式?
有字符串 expr = "sum = (A-B)*C";
sum ,A,B,C 为HTML中 <input id="sum, A , B ,C" value=""/> 的ID
我想通过JS处理后得到

total = ($("#A").val() - $("#B").val() )*$("#C").val();
$("#sum").val(total);


[解决办法]

JScript code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script type="text/javascript">    var regx = /[^\/)%(\*\+=-]+/g;    var expr = "sum = (A-B) * C";        expr = expr.replace(regx,function($1){        $1 = $1.replace(/\s*/g,"");        return $1!=""?"document.getElementById('" + $1 + "').value":"";    });    window.onload = function(){        eval(expr);    }</script></head><body>    <input id="sum" type="text" value="" />    <input id="A" type="text" value="3" />    <input id="B" type="text" value="4" />    <input id="C" type="text" value="5" /></body></html>
[解决办法]
HTML code
<input id="sum" type="text" value="" /><input id="A" type="text" value="3" /><input id="B" type="text" value="4" /><input id="C" type="text" value="5" /><script type="text/javascript">var expr = "sum = (A-B) * C";var sum = 0;var A = $("#A").val();var B = $("#B").val();var C = $("#C").val();window.eval('(' + expr + ')');$("#sum").val(sum);</script> 

读书人网 >JavaScript

热点推荐