我有一个存储为文本的公式。我从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字符串用作实际公式?
答案 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');