0

我正在开发一个项目,其中用户定义要针对用户输入执行的公式。

例如,在 UI 端,用户将输入 varA 和 varB 的值。javascript 代码应该获取这两个值,将它们注入如下公式:

varA + varB ** (1/2.0)

然后返回结果。

我面临的问题是某些操作(如**上面的示例)不会直接映射到 javascript,必须以某种方式将这些公式转换为它。是否有任何库可以实现我可以使用的这种东西?

编辑:我找到了这个,它完全符合我的需要(并且合并^而不是**,这是一个replace远离。)

还有更好的吗?

4

2 回答 2

2

您可以使用 math.js 库中的表达式解析器。不过,也使用^角色来获得力量。

http://mathjs.org

示例用法:

var parser = math.parser();
parser.eval('a = 1.2 / (2.3 + 0.7)');   // 0.4
parser.eval('2 * a');                   // 0.8
parser.eval('5.08 cm in inch');         // 2 inch
parser.eval('sin(45 deg) ^ 2');         // 0.5
parser.eval('9 / 3 + 2i');              // 3 + 2i
parser.eval('det([-1, 2; 3, 1])');      // -7
于 2013-04-28T17:57:34.960 回答
0

使用ES6,您可以执行以下操作:

let varA = 1
let varB = 5
const answer = varA + varB ** (1 / 2.0)

let varA = 1
let varB = 5
const answer = varA + varB ** (1 / 2.0)
const output = `${varA} + ${varB} ** (1 / 2.0) =\n${answer}`
document.querySelector('.output').innerHTML = output
.output {
  font-size: 1.5em;
}
<pre class="output"></pre>

于 2019-04-10T19:26:44.697 回答