input type="number", в alert value выводит пустоту когда я пишу 1- или 1-1

Столкнулся с такой проблемой, что мне нужно было, чтобы не вводился минус. Причем не только с клавы но и другими способами. Проблему я решил на половину. Дело в том что я смог сделать, чтобы минус не мог появляться самым первым в input и вроде бы решил 2ую часть проблемы с минусом в других частях числа. Но у меня перестала вводится точка.

<input type="number" id="bet">

var inputBet = document.getElementById("bet");

inputBet.oninput = function() {
  //Запрещаем минус в input любыми способами(ctrl + v, перетаскивание мышкой и.т.д)
  //В начале input
  if (inputBet.value < 0) {
    inputBet.value = inputBet.value / -1;
  //В других местах
  } else if (inputBet.value == "") {
    inputBet.value = "";
  }
}

Как решить проблему, чтобы минусов вообще не могло быть в input, а точки не затрагивались, при этом оставляя type="number"


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

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

Все, решение нашлось. nick_n_a спасибо за наводку.

inputBet.oninput = function() {
  //Запрещаем все кроме цифр и точки любыми способами(ctrl + v, перетаскивание мышкой и.т.д)
  inputBet.value = inputBet.value.replace(/[^\d.]*/g, '')
    .replace(/([,.])[,.]+/g, '$1')
    .replace(/^[^\d]*(\d+([.,]\d{0,5})?).*$/g, '$1');
}
→ Ссылка