JSFiddle - React, Tailwind, and code Playground

by Miguel Roman

HTML

<input id="input" type="text" inputmode="numeric" min="0" value="">
<span id="which"></span> / <span id="cursor"></span> / <span id="error"></span> / <span id="result"></span> / <span id="date"></span>

<br />

JavaScript

document.getElementById("input").addEventListener("keydown", test);

var allowedCodes = [8, 37, 39];
var decimalSign = '.';

function test(evt) {

		var key = evt.key;
    var keyCode = evt.keyCode;
    document.getElementById("which").innerText = keyCode;
    document.getElementById("date").innerText = (new Date()).getTime().toString();

		var hasNotPoint = evt.target.value.indexOf(decimalSign) < 0;

		if ((hasNotPoint && key === decimalSign) || (/[0-9]/.test(key))) {
    	return;
    }
    
    if (allowedCodes.indexOf(keyCode) >= 0) {
    	return;
    }

  	evt.preventDefault();
    return false;
}