想要转换字符串

时间:2014-02-16 10:49:11

标签: javascript

所以我有这个代码,我试图创建一个简单的计算器:

window.onload = function () {make_buttons ('calc'); }

function make_buttons (id) {
    var parent = document.getElementById(id);
        var input = document.createElement("input");
        input.type = 'text'; input.id = 'inp';
        parent.appendChild(input);
        for (var i = 0;i < 10; i++){
            var btn = document.createElement ("button");
            btn.innerHTML = i;
            btn.id = i;
            parent.appendChild(btn);
            (function(index) {btn.onclick = function() {input.value += index;}})(i);
        }

        var multiply = document.createElement ("button");
        multiply.innerHTML = "*";
        multiply.id = "*";
        parent.appendChild(multiply);
        multiply.onclick = function () {input.value += '*';};
        var divide = document.createElement ("button");
        divide.innerHTML = "/";
        divide.id = "/";
        parent.appendChild(divide);
        divide.onclick = function () {input.value += '/';};
        var add = document.createElement ("button");
        add.innerHTML = "+";
        add.id = "+";
        parent.appendChild(add);
        add.onclick = function () {input.value += '+';};
        var substract = document.createElement ("button");
        substract.innerHTML = "-";
        substract.id = "-";
        parent.appendChild(substract);
        substract.onclick = function () {input.value += '-';};
        var calc_it = document.createElement ("button");
        calc_it.innerHTML = "=";
        calc_it.id = "=";
        parent.appendChild(calc_it);
        calc_it.onclick = function () {calculate ()};

};

function calculate () {
    var info = document.getElementById ('inp').value;
    console.log(info);


};

所以现在当我单击按钮并使输入字段内部有5 * 5时 - var info将等于字符串“5 * 5”。我怎么能转换这个字符串,以便字符串中的数字是整数,像*或 - 这样的运算符也将是非字符串?

我是否需要在此处添加一些正则表达式代码?

1 个答案:

答案 0 :(得分:1)

这个问题的答案确实很难。显而易见且最不受欢迎的答案是评估,但很可能你不会想要这样。

基本上,您必须编写例程来提取要在表达式中使用的任何内容。

如果不使用eval或第三方库,例如'silentmatts'解决方案(如下),您可能需要开发自己的例程来解析数据。

第三方解决方案:

网站:http://silentmatt.com/javascript-expression-evaluator/

Git:https://github.com/silentmatt/js-expression-eval

所有这些都表示,就将字符串转换为数学方程式而言,我个人使用eval。

希望这有帮助。