我正在使用JavaScript制作计算器,我想知道如何将字符串转换为表达式。
width
在变量之前添加+似乎不起作用。如果有人帮忙,我将不胜感激。
答案 0 :(得分:0)
您可以使用eval()这样的功能:
var numbers = "5+5+6";
document.querySelector('.screen').innerHTML = eval(numbers);;
评估/执行JavaScript代码/表达式:
var x = 10;
var y = 20;
var a = eval("x * y") + "<br>";
var b = eval("2 + 2") + "<br>";
var c = eval("x + 17") + "<br>";
var res = a + b + c;
res的结果将是:
200
4
27
答案 1 :(得分:0)
不使用eval,这是作弊 - 你总是可以写一个简单的计算器应用程序。
首先,利用String.split(),如下所示
var numbers = "5+5+6";
numbers.split("");
// => ["5","+","5","+","6"]
现在您需要做的就是弄清楚如何评估它,同时保持操作顺序正确。提示:它可能涉及树木。
答案 2 :(得分:0)
尝试使用String.prototype.match()
,Array.prototype.reduce()
,Number()
。另请参阅Chrome App: Doing maths from a string
var numbers = "5+5+6";
var number = numbers.match(/\d+|\+\d+|\-\d+/g)
.reduce(function(a, b) {
return Number(a) + Number(b)
});
document.querySelector(".screen").innerHTML = number;
<div class="screen"></div>