首页 > 解决方案 > 如何在javascript中计算字符串中的数字?

问题描述

我从用户那里得到一些输入并将它们保存在 div 标签中,就像计算器一样,例如,用户输入 100-50+30 然后我将其存储在 div 标签中,当用户点击我想要的 go 按钮时向他展示结果是 80。我尝试了 parseint 和 number,因为字符串包含像 + / * 这样的运算符,这些不起作用

var a = document.querySelector(".output").innerHTML;

标签: javascriptstringintegerintparseint

解决方案


您可以简单地使用eval,但出于安全原因,我建议在评估表达式之前从用户输入中删除除数字和允许的运算符之外的所有内容:

const input = '100-50+30 [some malicious code]'

const result = eval(input.replace(/[^0-9\+\-\*\/]/g, ''));

console.log(result)


推荐阅读