数学表达式解析器和评价器
快速而小(小于2KB精度和克齐普)零依赖性数学表达式解析器和评价器.
import evaluate from '@emmetio/math-expression';
console.log(evaluate('2 * (-3 + 5)')); // 4
动机
在 JavaScript 中, 您可以使用内置 eval() 函数以评价表达式 :
console.log(eval('2 * (-3 + 5)')); // 4
但在大多数现代JavaScript环境中 eval() 函数被认为有害,因为它可以评估 任意 任意的JS代码。 在某些情况下(例如: 原子 编辑器)由于安全原因默认被禁用.
与 @emmetio/math-expression 您可以在任何 JS 环境中安全地分析和评价基本的数学表达式.
从文本中提取表达式
此模块用于 艾米特 在代码源中评价数学表达式的项目。 一个默认的用户工作流程是在源代码的某个地方输入数学表达式并运行动作来评价. 你用得着 extract 从给定的源代码中提取数学表达式的函数,从指定位置开始:
import evaluate, { extract } from '@emmetio/math-expression';
const code = 'Here goes math: 2 + 3 foo bar';
const [start, end] = extract(code, 21); // 16, 21
const expr = code.substring(start, end); // 2 + 3
console.log(evaluate(expr)); // 5