How do I parse and evaluate a mathematical expression in a string (e.g. '1+1'
) without invoking eval(string)
to yield its numerical value?
With that example, I want the function to accept '1+1'
and return 2
.
You can use the JavaScript Expression Evaluator library, which allows you to do stuff like:
Parser.evaluate("2 ^ x", { x: 3 });
Or mathjs, which allows stuff like:
math.eval('sin(45 deg) ^ 2');
I ended up choosing mathjs for one of my projects.