使用多个数字在JavaScript中拆分函数

时间:2015-12-02 08:43:47

标签: javascript

我在理解JavaScript中的分割功能方面遇到了一些麻烦。

我试图在运算符之前和之后得到数字。

我的代码如下:

else if(btnVal == '=') {
            var equation = inputVal;
            var lastChar = equation[equation.length - 1];

            // Replace all instances of x with * respectively.
            equation = equation.replace(/x/g, '*');

            if (operators.indexOf(lastChar) > -1 || lastChar == ',')
               equation = equation.replace(/.$/, '');

            if (equation)
                if (equation.indexOf('+') == 1) {

                    var firstNumber = equation.split('+')[0];
                    var secondNumber = equation.split('+')[1];

                    var result = Number(firstNumber) + Number(secondNumber);

                    input.innerHTML = result;

                }
                else if (equation.indexOf('*') == 1) {
                    firstNumber = equation.split('*')[0];
                    secondNumber = equation.split('*')[1];

                    result = Number(firstNumber) * Number(secondNumber);

                    input.innerHTML = result;
                }
                else if (equation.indexOf('-') == 1) {
                    firstNumber = equation.split('-')[0];
                    secondNumber = equation.split('-')[1];

                    result = Number(firstNumber) - Number(secondNumber);

                    input.innerHTML = result;
                }
                else if (equation.indexOf('/') == 1) {
                    firstNumber = equation.split('/')[0];
                    secondNumber = equation.split('/')[1];

                    result = Number(firstNumber) / Number(secondNumber);

                    input.innerHTML = result;
                }

            decimalAdded = false;
        }

当我使用1个数字时,这一切都正常工作,例如1 + 1,但不适用于77 + 8。

有人可以帮助我解决这个问题吗?这也适用于两个数字?

1 个答案:

答案 0 :(得分:4)

  

输入“77 + 1”

时,条件错误
equation.indexOf('+') == 1

在上面的情况下indexOf'+'将是2而不是1

更改该行以及其他运算符,如下所示

equation.indexOf('+') != -1