当我正在研究我目前的问题时,article似乎很有希望,但我不知道自己是否是我的问题的答案。所以,如果有人能帮助我,那就太棒了。
这是我的功能:
function CalculateIMSUB(form) {
var Atext = form.input_1.value;
var Btext = form.input_2.value;
var val = form.val.value;
var A = eval(Atext);
var B = eval(Btext);
if (isNaN(A)) A = 0;
if (isNaN(B)) B = 0;
var answer = A - B;
form.Answer.value = answer;
}
这是我的HTML:
<form>
<INPUT TYPE=TEXT name="input_1" SIZE=15>
<INPUT TYPE=TEXT name="input_2" SIZE=10>
<INPUT TYPE="button" VALUE="+" name="SubtractButton"
onclick="CalculateIMSUB(this.form)">
<INPUT TYPE=TEXT NAME="Answer" SIZE=12>
<input type="hidden" name="val" value="" />
</form>
我的问题:
我可以添加“/”
例如,目前,如果您在输入1文本字段中键入10/5并单击计算,则答案文本字段中的答案为2。因为我们都知道10除以5等于2.我希望能够在输入1文本字段中输入10/5并得到15的答案,相当于10 + 5。非常感谢您的帮助,谢谢,这是我的jsFiddle。
答案 0 :(得分:1)
这是一个非常简单的计算器实现,包含原型和模块,不需要eval
。
var calc = (function calcModule() {
function Calculator(operation) {
this.op = operation;
this._init();
}
Calculator.prototype = {
_init: function() {
this.n1 = +this.op.split(/\D/)[0];
this.n2 = +this.op.split(/\D/)[1];
this.result = this[this.op.match(/\D/)[0]]();
},
'+': function() { return this.n1 + this.n2 },
'-': function() { return this.n1 - this.n2 },
'*': function() { return this.n1 * this.n2 },
'/': function() { return this.n1 / this.n2 }
};
return function(op) {
return new Calculator(op);
};
}());
如果您愿意,可以更改符号的作用。你这样使用它:
console.log(calc('20-15').result); //=> 5
console.log(calc('15/5').result); //=> 3
...
请注意,它非常简单,只能使用两个数字,但只是让你有个想法...
答案 1 :(得分:0)
你也可以这样做:
var Atext = form.first.value.replace(/\//g,"+");
var Btext = form.second.value.replace(/\//g,"+");
这将取代幕后的所有除法运算符,以便您的eval将它们作为加法处理。 (所以你可以把5/5/5拿到15,或者你有什么。)