4

可能重复:
在文本字段中使用 Javascript 运行方程式

如何转换以下内容:

var n = "2x^3+3x+6";

var x = a number
var n = 2x^3+3x+6;

在 JavaScript 中?

4

2 回答 2

16

很难猜测确切的要求和上下文是什么,但如果你想大致坚持你的变量所展示的语法,我建议使用数学表达式解析器。

使用js-Expression-eval,它可能看起来像这样:

var formula = "2*x^3+3*x+6";
var expression = Parser.parse(formula);
var result = expression.evaluate({ x: 3 });

运行小提琴

如果您想拥有自己的语法 - 例如,省略 * 符号以与变量相乘 - 您必须滚动自己的解析器,例如使用jison 之类的东西。

于 2013-01-10T17:06:25.343 回答
15
var x = a number;
var n = eval("2*Math.pow(x,3)+3*x+6")
于 2013-01-10T16:53:25.617 回答