javascript计算器:加号选项

javascript计算器:加号选项,javascript,calculator,Javascript,Calculator,当我在研究我当前的问题时,这似乎是有希望的,但我自己无法确定这是否是我问题的答案。所以如果有人能帮助我,那就太好了 这是我的职责: 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 (isNa

当我在研究我当前的问题时,这似乎是有希望的,但我自己无法确定这是否是我问题的答案。所以如果有人能帮助我,那就太好了

这是我的职责:

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。非常感谢您的帮助,谢谢,这是我的。

这是一个非常简单的计算器实现,带有原型和模块,无需
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
...

请注意,它非常简单,只适用于两个数字,但为了让您有一个想法…

您也可以这样做:

var Atext = form.first.value.replace(/\//g,"+");
var Btext = form.second.value.replace(/\//g,"+");

这将替换幕后的所有部门操作员,以便您的评估将其作为加法处理。(所以你可以把5/5/5加上15,或者你有什么。)

为什么你想用除法来表示加法?为什么在减去数字时加号在那里?…不确定是否会重载运算符,但你可以用regex@Blender我想这样做的原因是,这是为了在我的工作库存。当我们使用笔和纸时,我们使用除法符号表示不同的位置。@groovy,加号在那里,因为在我的函数中。将input1(5+5+5)字段中的所有内容相加,然后将其减去Input2(2+2+2)字段中的所有内容。根据我在括号中提供的数字得出的结果是15-6,这是9groovy,我相信你刚刚成为我最喜欢的人。谢谢你的回答。但我想这对我的工作来说是不切实际的。
eval
将更加不切实际。用户可以在这些输入中输入恶意代码。。。我的例子很简单,但只要稍加努力,你就可以使用多个数字,而且这更便于携带。@Clint:想在一秒钟内使你的应用崩溃吗?将
while(true)
输入正在求值的任何输入,然后单击“主计算”。巴昂!这就是为什么不应该使用
eval
进行此操作的原因。您提出了一个非常好的观点。我提供的网站是我用平板电脑在工作场所输入库存的网站。我提供的网站作为一个例子,我将很快限制访问该网页,以便只有我可以查看和/或提交表格。我不是一个专业人士,所以,我想问你,如果我是唯一一个提交数据的人,那么实施你的策略是否明智。这就是我说的不切实际的意思