2013-01-10 69 views

回答

9

很難猜測確切的需求和上下文是什麼,但是如果你想大致堅持你的變量所展示的語法,我建議使用數學表達式解析器。

使用js-Expression-eval,它看起來是這樣的:

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

運行Fiddle

如果你想擁有自己的語法 - 離開了*符號乘法變量,例如 - 你將不得不推出自己的解析器,例如使用類似jison的東西。

+0

偉大的超級簡單的解決方案,謝謝! –

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

你從哪裏得到'「2x^3 + 3x + 6」'Mathfow'? – ATOzTOA

+0

+1是一個很好的答案,如果只是爲了突出一個不好問的問題! – PeteH

+3

@PeteH這個問題不一定很少提出;也許OP不想爲他的方程使用JavaScript語法。 – Pointy