我正在开发一个项目,其中用户定义要根据用户输入执行的公式。
在 UI 端,用户可以输入 varA 和 varB 的值。 JavaScript 代码应该获取这两个值,将它们注入(inject)到如下公式中:
varA + varB ** (1/2.0)
然后返回结果。
我面临的问题是某些操作(如上面示例的 **
)不会直接映射到 JavaScript,必须以某种方式将这些公式转换为它。有没有任何库可以实现我可以使用的此类内容?
编辑:我发现this ,它正是我所需要的(并且合并了 ^
而不是 **
,这是一个 replace
。)
还有更好的吗?
最佳答案
您可以使用 math.js 库中的表达式解析器。不过也使用 ^
字符来表示权力。
使用示例:
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
关于JavaScript 数学库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14313210/