我有多个输入,如a1,a2,a3等。我想做的是在另一个字段中输入公式并相应地进行数学运算。
例如:(a1 + a3)* a2,并根据字段值计算总和。值和公式是动态的,所以我必须以某种方式解析公式才能执行此操作。有什么想法我该怎么办?
答案 0 :(得分:2)
试试这个fiddle
JS代码:
function calc() {
var formula = document.getElementById('formula').value;
var a1 = document.getElementById('a1').value;
var a2 = document.getElementById('a2').value;
var a3 = document.getElementById('a3').value;
formula = formula.replace('a1', a1).replace('a2', a2).replace('a3', a3);
document.getElementById('result').innerHTML = "The result is "+eval(formula);
}
答案 1 :(得分:1)
如果表达式可以通过javascript计算,则可以使用相应输入字段值中的值替换变量名称。然后你可以在变量上使用eval javascript函数,并计算结果。例如var a = "(a1+a3)*a2"; var b = a.replace("a1", 8).replace("a2", 3).replace("a3", 6); eval(b);
结果将是预期的42。