简单javascript提示计算器

简单javascript提示计算器,javascript,calculator,prompt,Javascript,Calculator,Prompt,我正在尝试制作一个简单的计算器,它可以计算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 n

我正在尝试制作一个简单的计算器,它可以计算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

这适用于整数。我认为您也可以使其适用于浮动:

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

那么你想输入
-2+-2
之类的内容?好的,我看到它只适用于无符号的一位数,所以你想输入
-2+-2
之类的内容?好的,我看到它只适用于无符号的一位数