【问题标题】:Convert equation string to equation [duplicate]将方程字符串转换为方程[重复]
【发布时间】:2013-01-10 16:49:11
【问题描述】:

可能重复:
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 中?

【问题讨论】:

  • 你必须为你打算使用的表达式语法编写一个解析器。
  • JavaScript 中的 ^ 运算符是二进制 XOR,而不是您期望的强大功能。
  • 等式中有哪些运算符?
  • 我认为这根本不是重复的;这个问题的语法绝对不是 JavaScript。

标签: javascript


【解决方案1】:

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

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

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

运行Fiddle

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

【讨论】:

  • 非常简单的解决方案,谢谢!
【解决方案2】:
var x = a number;
var n = eval("2*Math.pow(x,3)+3*x+6")

【讨论】:

  • 你从哪里得到Math.pow 来自"2x^3+3x+6"
  • +1 一个很好的答案,如果只是为了突出一个问得不好的问题!
  • @PeteH 这个问题不一定问得不好;也许 OP 不想在他的方程式中使用 JavaScript 语法。
猜你喜欢
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多