Как разрешить использование десятичных знаков в моем калькуляторе javascript? - PullRequest
0 голосов
/ 07 августа 2020

Я создаю калькулятор и хочу убедиться, что он может выполнять несколько операций (включая десятичные числа). Мне нужна помощь.

Ниже мой код:

let add = function(a,b) {
  return a + b;
}
let subtract = function(a,b) {
  return a - b;
}
let multiply = function(a,b) {
  return a * b;
}
let divide = function(a,b) {
  return a / b;
}
let operator = function(operate,a,b) {
  if (operate === '+') {
    return add(a,b);
  } else if (operate === '-') {
      return subtract(a,b);
  } else if (operate === '*') {
      return multiply(a,b);
  } else if (operate === '/') {
      return divide(a,b);
  }
}
let screen = document.querySelector('div');
let buttons = document.querySelector('.btns');
let data = ''
buttons.addEventListener('click', e => {
  if(typeof e.target.value !== 'undefined'){
    data += e.target.value;
    screen.textContent = data;   
  }  
  if(e.target.value === 'Back'){
    data = data.slice(0,-5);
    screen.textContent = data;
  }
  if(e.target.value === '='){
    const regex = /\d+|[-+\*\/]/g;
    const parsed = data.match(regex);
    data = data.slice(0,-1);
    screen.textContent = data;
    if (parsed && parsed.length && !isNaN(parsed[0])) {
      let numOne = Number(parsed[0]);
      for (let i = 1; i < data.length - 1; i++) {
        if ("+-*/".includes(parsed[i]) && !isNaN(parsed[i+1])) {
          numOne = operator(parsed[i], numOne, Number(parsed[i+1]));
          screen.textContent = numOne;
        }
      }
      data = numOne;
    } 
  }
  if(e.target.value === 'Clear'){
    data = '';
    screen.textContent = data;
  }

})

  

Я хотел бы иметь возможность работать с десятичными числами. Как мне отредактировать свое регулярное выражение для анализа операций?

...