在javascript中求解算术字符串?
假设我有以下代码:在javascript中求解算术字符串?,javascript,math,Javascript,Math,假设我有以下代码: var str = "4*(3)^2/1" 最简单的解决方案就是生成一个运算符堆栈并使用后缀符号进行求解吗?或者我缺少一个真正基本的解决方案 另外,如果我使用log、ln、sin、cos和tan,我该如何调整?您不需要后缀符号。您可以使用eval方法 var str=“4*(3)^2/1”; console.log(str); 控制台日志(eval(str))很抱歉回答我自己的问题,但最简单的解决方案是使用 最简单但有点危险的一种方法是使用eval(对于指数运算符
var str = "4*(3)^2/1"
最简单的解决方案就是生成一个运算符堆栈并使用后缀符号进行求解吗?或者我缺少一个真正基本的解决方案
另外,如果我使用log、ln、sin、cos和tan,我该如何调整?您不需要
后缀
符号。您可以使用eval
方法
var str=“4*(3)^2/1”;
console.log(str);
控制台日志(eval(str))代码>很抱歉回答我自己的问题,但最简单的解决方案是使用
最简单但有点危险的一种方法是使用eval(对于指数运算符^
,在JavaScript中用指数运算符替换它),因此在求值之前可能必须验证(清理)表达式:
var str=“4*(3)^2/1”。替换(/\^/g,**);
控制台日志(eval(str))代码>对于作为参数传递的内容要非常小心。如果表达式来自clent,请确保对其进行适当的清理。OP可能会将^2
视为正方形,而不是XOR 2
是否应改用Math.pow()?答案应包含解决方案。这只是一个利用图书馆解决问题的建议。可能会演示如何使用库,而不仅仅是链接到库。那么^
呢?@ringøI编辑了答案,您基本上将^
替换为**
,因为后者执行指数运算。
var ans = math.eval(str);