JSFiddle - React, Tailwind, and code Playground
HTML
<input type="text" onkeyup="this.value = getOnlyDecimalChars(this.value)" />
JavaScript
function getOnlyDecimalChars(sText) {
var m = sText.match(/[0-9.]/g,'') //on ne garde que les chiffres et .
return m ? m.join('') // on remet tout ça dans une seule string
.replace(/\.+/,'.') //on remplace tous les .. et ...+ par .
.match(/^\d+\.?\d*/) // on renettoie la chaine pour ne pas se retrouver avec un cas du genre 12.34.56 on ne gardera que 12.34
.join('') // on join le résultat
//dans le cas ou m est null on retour une chaine vide.
: '';
}