It is necessary to make so that in the calculator the first operand is remembered and rewritten by the second. To remember, I kind of did it, but I don’t quite understand how to do it to put them together.

<input type="button" value="7" onclick="calculator.answer.value += input.value;rememberFirstOperand();" /> function rememberFirstOperand() { var rep1 = /[/|*|+|-]/;//проверка на наличие операнда в строке input var rep2 = /[0-9](?=[*|/|+|-])/;//проверка что знак в конце первого операнда var tempValue = 0; if (rep1.test(calculator.answer.value) && rep2.test(calculator.answer.value)) { tempValue=calculator.answer.value; calculator.answer.value='';//очищаю для ввода второго элемента } } 
  • And I say a second time that you would do the calculator fine: habrahabr.ru/post/50196 , everything would be simple - Duck Learns to Take Cover

1 answer 1

https://jsfiddle.net/kcLuvoco/2/

 //Буфер можно в спрятанное поле или data-buffer запихать var buffer; var sign = ''; var doit = document.getElementById("doit"); doit.onclick = function(){ var answer = document.getElementById('answer'); var input = answer.value.match(/(\d+)([-+/*]?)/); var newValue = parseInt(input[1]); switch(input[2]){ case '+': case '-': case '/': case '*': buffer = newValue; sign = input[2]; break; default: if(sign==''){ alert('incorrect sentence'); return; } //Можно через exec. Но я его не люблю! switch(sign){ case '+': answer.value = buffer+newValue; break; case '-': answer.value = buffer-newValue; break; case '/': //не забываем про 0 answer.value = buffer/newValue; break; case '*': answer.value = buffer*newValue; break; } } } 
 <input type="text" id="answer" value="0" /> <input type="hidden" id="rememberedValue" /> <div id="numpad"> <button type="button" id="doit"> do it! </button> </div> 

  • My calculator works almost as it should, I enter the entire string with the first operand and the second operand, but I need to introduce for example '1234+' and second operand '3432432 and press =' - Archi
  • Corrected the code so that it reads as you write. O_o for example, enter 111 / doit! 3 doit! should be 37 - knes