使用文本作为公式并替换变量

时间:2014-08-13 19:45:25

标签: javascript

我有一个存储为文本的公式。我从div中获取此值,但出于此问题的目的,我将手动分配值。

price_formula = "100.00 + (pages-24)/4 * 25.00"

现在我的目标是用数值替换pages,然后对此公式进行数学运算并输出结果。

这是我尝试过的:

price_formula = "150.00 + (pages-24)/2 * 30.00";
price_formula = price_formula.replace('pages', 32);
alert(price_formula); // outputs "150.00 + (32-24)/2 * 30.00)"
alert(Math.floor(price_formula)); // outputs "NaN"

如何将price_formula字符串用作实际公式?

2 个答案:

答案 0 :(得分:1)

This can be super dangerous您应该be careful with user-generated content

字符串不是数字(NaN) - 因此您无法对其执行数学方法(如Math.floor)。

可以将该字符串读取为JavaScript并使用eval对其进行评估:

var priceFormula = "150.00 + (pages-24)/2 * 30.00";
var price = eval( priceFormula.replace(/pages/g, 32) );

答案 1 :(得分:0)

您只需使用replace()函数将"页面" 更改为任意值:

price_formula = "100.00 + (pages-24)/4 * 25.00";
price_formula=price_formula.replace('pages','your value here');