如何将一串数字和数学运算符变成整数答案?- JavaScript

How would I turn a string of numbers and mathematical operators, into a integer answer? - JavaScript

本文关键字:运算符 整数 答案 JavaScript 数字 一串      更新时间:2023-09-26

例如,"22+20"将转换为答案42,其中42是整数。另一个例子是"20/10*4",答案是8。我该怎么做?

简单危险的答案是使用 eval() ,如:

eval("20/10*4"); // returns 8

但是您必须验证传递给eval()的任何输入,否则您将面临跨站点脚本 (XSS( 漏洞!它将运行您传递的任何内容,即使代码是恶意的。

您还可以采用更安全但更难的路由,并编写一个解析器来解释字符串并相应地进行计算。

就像 Ed Cottrell 说的,你可以使用eval但你需要非常小心。相反,您可以使用 math 的表达式解析器.js:

math.eval('20/10*4'); // returns 8