-2

従来の「+」記号だけでなく、「/」または「、」記号を追加できるようにしたいと考えています。除算にはもちろん「/」記号が使われていますが、目的を変えたいと思います。

JavaScript

function CalculateIMSUB(form) {
  var Atext = form.input_A.value;
  var Btext = form.input_B.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;
  form.input_A.value = form.input_A.value.replace(/\+/g, ",");
  form.input_B.value = form.input_B.value.replace(/\+/g, ",");
}

function calculateAll() {
  var forms = document.getElementsByTagName("form");
  for (var i = 0; i < forms.length; i++) {
    CalculateIMSUB(forms[i]);
  }
}

HTML

<form>
  <INPUT TYPE=TEXT NAME="input_A" SIZE=15 />
  <INPUT TYPE=TEXT NAME="input_B" 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="1221" />
</form>

これが私の例です

4

1 に答える 1

2

このようなものを実装してみてください。いいえeval、ただの配列です。

function add( value ) {
  return value.split(/[+,\/]/).reduce(function( a,b ) {
    return +a + +b;
  });
}

console.log( add('1+1+1') ); //=> 3
console.log( add('2,2,2') ); //=> 6
console.log( add('3/3/3') ); //=> 9
于 2013-01-22T06:04:31.493 に答える