2017-06-01 71 views
0

我想做一個簡單的計算器,它可以計算js上的兩個數字。它有4個操作 - 「+」,「 - 」,「*」和「/」。但問題是,在目前的實施中,它只能使用一個符號數字運行)))解決此問題的最佳方法是什麼?簡單的JavaScript提示計算器

var express = prompt("Enter your operation, for example 2+2",""); 
if(!express) alert("Ok, it's over!"); 


express = express.replace(/\s/g, ''); 
var number1 = +express.charAt(0); 
var sign = express.charAt(1); 
var number2 = +express.charAt(2); 

switch(sign){ 
case "+" : alert(number1 + number2); break; 
case "-" : alert(number1 - number2); break; 
case "*" : alert(number1 * number2); break; 
case "/" : alert(number1/number2); break; 
default : alert("Not a correct operation"); 
} 
+1

所以你想輸入像'-2 + -2'這樣的東西? –

+0

好吧,我看到它只能用於沒有簽名的一位數字 –

回答

3

這適用於整數。我想,你可以把它的花車以及工作:

var expression = "-30--20"; 

match = expression.match(/^(-?\d+)([-+*/])(-?\d+)$/); 

if (match === null) { 
    alert("invalid expression"); 
    return; 
} 

var number1 = match[1]; 
var operand = match[2]; 
var number2 = match[3]; 

switch(operand){ 
    case "+" : alert(number1 + number2); break; 
    case "-" : alert(number1 - number2); break; 
    case "*" : alert(number1 * number2); break; 
    case "/" : alert(number1/number2); break; 
    default : alert("Not a correct operation"); 
} 

給出-10

1

您需要將所有輸入(包括運算符)追加到字符串,而不是解析該字符串並計算結果。