不允许25Tan()但允许Tan(25)

时间:2014-02-03 14:47:45

标签: javascript html5 web

我正在制作一个计算器,如果我有25tan(),我不希望计算器进行计算,它应该给出输出'语法错误',另一方面tan(25)应该工作。我不能让它发挥作用。

if(equation)
        {
            if(tan == true)
            {
                if(input.innerHTML = inputVal + 'Tan(')
                {
                    input.innerHTML = 'Syntax Error';
                    tan = false;    
                }               
                else
                {
                    inputVal = inputVal.replace('Tan(', '');
                    inputVal = inputVal.replace(')', '');
                    input.innerHTML = Math.tan(inputVal);
                }
            }
            input.innerHTML = eval(equation);
            //Om det är NaN så ersätts det med '0'
            if (isNaN(a))
            {
                a = 0;
            }
        }

我已编辑过这个,但它在25Tan()和Tan(25)上都会出现语法错误。

这是固定版本

if(equation)
        {
            if(tan == true)
            {
                if(equation.indexOf('Tan(') == 0)
                {
                    inputVal = inputVal.replace('Tan(', '');
                    inputVal = inputVal.replace(')', '');
                    input.innerHTML = Math.tan(inputVal);
                }               
                else
                {           
                    input.innerHTML = 'Syntax Error';
                    tan = false;
                }
            }
            input.innerHTML = eval(equation);
            //Om det är NaN så ersätts det med '0'
            if (isNaN(a))
            {
                a = 0;
            }
        }

1 个答案:

答案 0 :(得分:0)

如果要检查子字符串是否包含在给定字符串中,则应使用indexOf函数。它返回字符串的子串索引。如果子字符串不存在,则字符串函数返回-1。

然后你的代码应该是这样的:

if (equation) {
    if (tan == true) {
        if (input.value.indexOf('Tan(') == 0) {
            inputVal = input.value;
            inputVal = inputVal.replace('Tan(', '');
            inputVal = inputVal.replace(')', '');
            input.value = Math.tan(inputVal);
        } else {
            input.value = 'Syntax Error';
            tan = false;
        }
    }
    else {
        input.value = eval(equation);
    }
}

以下是工作示例http://jsfiddle.net/suska/kUjf5/