JSFiddle - React, Tailwind, and code Playground

HTML

<input data-bind="value: number" />

JavaScript

ko.extenders.number = function (target, opt) {
    var result = ko.computed({
        read: target,
        write: function (value) {
                      
            if (value.substr) {
                value = parseFloat(value);
                if(isNaN(value) || value < 0) 
                   value = 0;              
            }        
            
            target(value);
            target.valueHasMutated();
        }
    });
    
    return result;
};


ViewModel = function()  {
    this.number = ko.observable(5).extend({ number: true });    
}
    
ko.applyBindings(new ViewModel());