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.
        : '';
}