防止NaN被挤压一次或两次

时间:2016-03-01 04:57:57

标签: javascript html

我正在使用JavaScript构建一个计算器,并希望阻止用户按下NaN(例如分割,加上等,即仅先按一个数字)并防止Nan被按下两次,例如不允许分割两次。我怎么能这样做?

这是我的代码:

var result = ""; //must be a string so it concatenates rather than adds

function calc(digit){

    if (digit == "ans"){
        var prevResult = result;
        result = prevResult;
        $("#resultBox").append("Ans");
    }
    else if (digit == "sum"){
        $("#resultBox").val(eval(result));
    }
    else if (digit == "clear"){
        location.reload();
    }
    else{
      result += digit; 
      $("#resultBox").val(result);  
    }
}

这是我的HTML中几个按钮的示例:

<button class="large" type="button" value="divide"onclick=calc("/")>/</button>

<button class="small" type="button" value="1" onclick=calc(1)>1</button>

1 个答案:

答案 0 :(得分:0)

将第一个部分更改为

else if (digit == "sum"){
    if ( result.length > 0 )
    {
        $("#resultBox").val(eval(result));
    }
}

同样,对于除以及加号,检查最后一个字符是否为数字

if ( result.length > 0 && !isNaN(result.slice(-1) )
{
   result += digit; 
}