Как не допустить ввведение не корректных данных?

Input для заполнение стоимости продукции. На момент ввода корректируется данные, не допуская ввода все кроме чисел и знака ",". Если запятая была первым символом, добавить в начало 0.
Есть ли способ это сделать лучше?

HandlerChange = e => {
  const $el = e.target;
  if($el.value[0] === ','){
    $el.value = 0+$el.value;
  }
  $el.value = $el.value.replace(/[^0-9,]+/g, '').split(',').slice(0,2);

},
HandlerBlur = e => {
  const $el = e.target;
  $el.value = (+$el.value.replace(',', '.')).toFixed(2).replace('.',',');
}

Ответы (1 шт):

Автор решения: Locker

const input = document.querySelector("input");
input.addEventListener("input",({target})=>{
  const value =  target.value;
  target.value = target.value.replace(/^,/,0+value)
  .replace(/[^0-9,]/g,'')
})
<input />

Есть вариант с input type="number"

<input type=number step=0.01 />

→ Ссылка