0

我正在制作一个将使用计算器的系统,但是,在任何给定时间,用户都必须单击一个单词,并且该单词需要有一个值,例如 20。请参阅数学公式如何工作的示例:

car = 20;
2 + (car + 1);

这个公式的结果是 23

这些词和值来自数据库

任何人都知道如何在javascript中做到这一点?

javascript代码:

function addChar(input, character) {
    if (input.value == null || input.value == "0"){
        input.value = character;
    }
    else{
        input.value += character;
    }
}
function cos(form) {
    form.display.value = Math.cos(form.display.value);
}
function sin(form) {
    form.display.value = Math.sin(form.display.value);
}
function tan(form) {
    form.display.value = Math.tan(form.display.value);
}
function sqrt(form) {
    form.display.value = Math.sqrt(form.display.value);
}
function ln(form) {
    form.display.value = Math.log(form.display.value);
}
function exp(form) {
    form.display.value = Math.exp(form.display.value);
}
function sqrt(form) {
    form.display.value = Math.sqrt(form.display.value);
}
function deleteChar(input) {
    input.value = input.value.substring(0, input.value.length - 1)
}
function changeSign(input) {
    if (input.value.substring(0, 1) == "-"){
        input.value = input.value.substring(1, input.value.length);
    }
    else{
        input.value = "-" + input.value
    }
}
function compute(form) {
    form.display.value = eval(form.display.value)
}
function square(form) {
    form.display.value = eval(form.display.value) *
            eval(form.display.value)
}
4

1 回答 1

0
var data = {"car":20};
var formula = " 2 + (%car% + 1)";
for (var index in data){
    formula = formula.replace(new RegExp("%"+index+"%","g"),data[index]);
}
alert(eval(formula));

使用前缀和后缀来忽略部分匹配词替换错误。我用了 %

于 2013-06-03T13:10:22.683 回答