2017-06-01 16 views
0

jsで2つの数値を計算する簡単な電卓を作ろうとしています。 "+"、 " - "、 "*"、 "/"の4つの操作があります。しかし問題は、現在の実装では1つの符号番号でしか動作できないということです)))これを解決する最良の方法は何ですか?シンプルな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'のようにsthを入力しますか? –

+0

私はそれが唯一の署名されていない1桁の数字 –

答えて

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

すべての入力(演算子を含む)をその文字列を解析して結果を計算するよりも、文字列に追加する必要があります。