将等式字符串转换为等式

时间:2013-01-10 16:49:11

标签: javascript

  

可能重复:
  Running an equation with Javascript from a text field

如何转换以下内容:

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

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

在JavaScript中?

2 个答案:

答案 0 :(得分:11)

很难猜出确切的要求和背景是什么,但如果你想粗略地坚持你的变量所展示的语法,我建议使用数学表达式解析器。

使用js-Expression-eval,它可能如下所示:

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

运行Fiddle

如果您想拥有自己的语法 - 例如,省略用于与变量相乘的*符号 - 您必须使用自己的解析器,例如使用类似jison的内容。

答案 1 :(得分:9)

var x = a number;
var n = eval("2*Math.pow(x,3)+3*x+6")