将等式字符串转换为等式

max*_*hud 1 javascript

可能重复:
使用文本字段中的Javascript运行等式

如何转换以下内容:

var n = "2x^3+3x+6";
Run Code Online (Sandbox Code Playgroud)

var x = a number
var n = 2x^3+3x+6;
Run Code Online (Sandbox Code Playgroud)

在JavaScript?

tjd*_*cke 13

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

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

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

小提琴

你是否想要拥有自己的语法 - 例如,省略用于与变量相乘的*符号 - 你必须滚动自己的解析器,例如使用像jison这样的东西.


Mic*_*ens 10

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

  • @PeteH问题不一定是问题不大; 或许OP不希望将JavaScript语法用于他的方程式. (3认同)