如何计算 javascript 中字符串中的数字?
how to calculate numbers in a string in javascript?
我从用户那里得到一些输入并将它们保存在 div 标签中,就像计算器一样工作,例如,用户输入 100-50+30 然后我将其存储在 div 在用户点击开始按钮时标记,我想向他展示 80 的结果。
我尝试了 parseint 和数字,因为字符串包含像 + / * 这样的运算符,这些运算符不起作用
var a = document.querySelector(".output").innerHTML;
使用eval()
函数
var expression = '100-50+30';
console.log(eval(expression));
eval()
函数计算 JavaScript 表示为字符串的代码。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
您可以简单地使用 eval
,但出于安全原因,我建议在计算表达式之前从用户输入中删除除数字和允许的运算符之外的所有内容:
const input = '100-50+30 [some malicious code]'
const result = eval(input.replace(/[^0-9\+\-\*\/]/g, ''));
console.log(result)
我从用户那里得到一些输入并将它们保存在 div 标签中,就像计算器一样工作,例如,用户输入 100-50+30 然后我将其存储在 div 在用户点击开始按钮时标记,我想向他展示 80 的结果。 我尝试了 parseint 和数字,因为字符串包含像 + / * 这样的运算符,这些运算符不起作用
var a = document.querySelector(".output").innerHTML;
使用eval()
函数
var expression = '100-50+30';
console.log(eval(expression));
eval()
函数计算 JavaScript 表示为字符串的代码。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
您可以简单地使用 eval
,但出于安全原因,我建议在计算表达式之前从用户输入中删除除数字和允许的运算符之外的所有内容:
const input = '100-50+30 [some malicious code]'
const result = eval(input.replace(/[^0-9\+\-\*\/]/g, ''));
console.log(result)