简单javascript提示计算器
Simple javascript prompt calculator
我正在尝试制作一个简单的计算器,它可以在 js 上计算两个数字。它有 4 个操作 - “+”、“-”、“*”和“/”。但问题是,在当前的实现中,它只能使用一个符号数进行操作)))解决这个问题的最佳方法是什么?
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");
}
您需要将所有输入(包括运算符)附加到一个字符串,而不是解析该字符串并计算结果。
这适用于整数。我想你也可以让它适用于花车:
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
.
我正在尝试制作一个简单的计算器,它可以在 js 上计算两个数字。它有 4 个操作 - “+”、“-”、“*”和“/”。但问题是,在当前的实现中,它只能使用一个符号数进行操作)))解决这个问题的最佳方法是什么?
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");
}
您需要将所有输入(包括运算符)附加到一个字符串,而不是解析该字符串并计算结果。
这适用于整数。我想你也可以让它适用于花车:
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
.