Javascript based string expression evaluation library.
This library can evaluate a string expression and return the result. It supports basic arithmetic operations like addition, subtraction, multiplication, division and modulus. It also supports variables and functions.
yarn add js-expression-eval
npm install js-expression-eval
import jsExpressionEval from 'js-expression-eval';
const { ExpressionParser } = jsExpressionEval;
const parser = new ExpressionParser(expression:string, variables);
const result = parser.evaluate();
import jsExpressionEval from 'js-expression-eval';
const { ExpressionParser } = jsExpressionEval;
const parser = new ExpressionParser('2 + 3');
const result = parser.evaluate();
console.log(result); // 5
const parser = new ExpressionParser('x + y.z', { x: 2, y: { z: 3 } });
const result = parser.evaluate();
console.log(result); // 5
const parser = new ExpressionParser('A + B', { A: 2, B: () => 3 });
const result = parser.evaluate();
console.log(result); // 5
const parser = new ExpressionParser('A.B + A.C' ,
{
A: (identifier) => {
switch (identifier) {
case 'B':
return 2;
case 'C':
return 3;
}
}
});
const result = parser.evaluate();
console.log(result); // 5
By default the parser has list predefined functions.
This function returns all the function names that are used in the given expression.
const parser = new ExpressionParser('SUM(A, B) + AVERAGE(C, D)');
const functionNames = parser.getAllFunctionNames();
console.log(functionNames); // ['SUM', 'AVERAGE']
This function returns all the variable names that are used in the given expression.
const parser = new ExpressionParser('A + B');
const identifiers = parser.getAllIdentifiers();
console.log(identifiers); // ['A', 'B']
If you want to add a new function to the parser, please create a new issue with the function name and the function description. We will add the function to the parser as soon as possible.