在JavaScript中将字符串转换为表达式

时间:2015-10-20 21:47:06

标签: javascript string expression

我正在使用JavaScript制作计算器,我想知道如何将字符串转换为表达式。

width

在变量之前添加+似乎不起作用。如果有人帮忙,我将不胜感激。

3 个答案:

答案 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>