Javascript/HTML计算器,需要其他方法来计算结果
我在上中学,我们现在学习HTML和javascript。我正在做一个计算器(在互联网的帮助下),我找到了eval()函数。我们基本上还没有学会,所以我需要把它改成别的东西。以下是我的计算器的代码:Javascript/HTML计算器,需要其他方法来计算结果,javascript,html,Javascript,Html,我在上中学,我们现在学习HTML和javascript。我正在做一个计算器(在互联网的帮助下),我找到了eval()函数。我们基本上还没有学会,所以我需要把它改成别的东西。以下是我的计算器的代码: 萨莫洛格普 贝克尔函数(szam){ document.szamologep.eredmeny.value=document.szamologep.eredmeny.value+szam; } 函数szamol(){ var a=document.szamologep.eredmeny.value
萨莫洛格普
贝克尔函数(szam){
document.szamologep.eredmeny.value=document.szamologep.eredmeny.value+szam;
}
函数szamol(){
var a=document.szamologep.eredmeny.value;
如果(a){
document.szamologep.eredmeny.value=eval(a)
}
}
萨莫洛格普!
继续,您需要一种方法来确定您正在使用的运算符。下面的代码将只解释一个操作员,但如果您只需要涵盖这些,则将执行您正在寻找的操作
为了澄清上面的粗体文本,这将适用于以下表达式:
X+Y
,X-Y
,X*Y
和X/Y
但不适用于以下表达式:
X+Y+Z
,X*Y+Z/p
等
function szamol() {
var a = document.szamologep.eredmeny.value;
if (a) {
var answer;
var split = a.split(/([+,\-,*,\/]){1}/g);
console.log('Split: ' + split);
var first = Number(split[0]);
var operator = String(split[1]);
var second = Number(split[2]);
switch(operator){
case '+':
answer = first + second;
break;
case '-':
answer = first - second;
break;
case '*':
answer = first * second;
break;
case '/':
answer = first / second;
break;
}
document.szamologep.eredmeny.value = answer;
}
}
我们设置空的answer
变量,然后使用正则表达式在任何运算符+,-,*,\
上拆分a
值。我们的拆分
的第一个元素是第一个数字,我们的拆分
的第二个元素是运算符,我们的拆分
的第三个元素是第二个数字
在我们有了我们的片段之后,我们创建了一个
开关
案例来检查我们使用的是哪一个操作符,并以此为基础进行计算。因为输入是文本输入-JavaScript假定我们使用的是字符串-这就是为什么我必须将第一个和第二个变量作为Number()进行类型转换的原因
设置它们时。您需要使用一个长的开关
或多个if-else
语句来查找运算符,并根据选择/按下的运算符对数字/操作数进行操作