Мне нужно делать переменную decimalCounter равной нулю всякий раз, когда есть выражение после операторов [+ * \ -], чтобы decimalCounter = 0 позволяло вводить десятичную дробь.
Но всякий раз, когда выражение типа 5.5 или \Обнаружено, что d +. \ d + не должно позволять добавлять больше десятичных знаков и изменять decimalCounter = 3.
В целом это означает, что если я ввел 4.4, мне не разрешат добавлять больше десятичных знаков, пока я не столкнусь с оператором, находяоператор должен изменить decimalCounter = 0, чтобы после него разрешалось использовать десятичную дробь, т. е. 3.4-4.7 * 55.3 в порядке, но 3.4.4-4.5.6 \ 2.3.4 НЕ разрешено.
Пожалуйста, посмотрите на этот код ипредложить изменения.Вот ссылка на полный код Codepen
if (e.target.id == "decimal") {
decimalCounter++;
if( /([+\*\\-])/g.test(this.state.calcString)){
decimalCounter = 0; //PROBLEM
let y=this.state.calcString.match(/([+\*\\-])/g)
console.log(y,this.state.calcString,decimalCounter)
}else if( /(\d+\.\d+)/.test(this.state.calcString)){
decimalCounter=3;
let y=this.state.calcString.match(/(\d+\.\d+)/)
console.log(y,this.state.calcString,decimalCounter)
}
} else {
if( /(\d+|[+\*\\-])/g.test(this.state.calcString)){
decimalCounter = 0; //PROBLEM
let y=this.state.calcString.match(/(\d+|[+\*\\-])/g)
console.log(y,this.state.calcString,decimalCounter)
}
}