我如何将一串数字和数学运算符转换为整数答案? - javascript

时间:2014-12-21 23:08:17

标签: javascript string math

例如,“22 + 20”然后将被转换为42的答案,其中42是整数。另一个例子是“20/10 * 4”,其答案是8.我一直在考虑这个问题,并且无法想到我将如何做到这一点。在回答之前,请考虑我是javascript的新手,但不知道编程整体。谢谢你的时间

2 个答案:

答案 0 :(得分:3)

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

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

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

您也可以采用更安全但更难的路线,并编写解释字符串并进行相应计算的解析器。

答案 1 :(得分:1)

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

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