JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div>
  <input type="text" data-bind="number_value: num, valueUpdate:'keyup'">
  <span data-bind="text: num"></span>
</div>

JavaScript

ko.bindingHandlers.number_value = {
  init: function(element, valueAccessor,allBindingsAccessor, viewModel, bindingContext){
  	ko.bindingHandlers.value.init(element, valueAccessor,allBindingsAccessor, viewModel, bindingContext);
  },
  update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
    var value = ko.utils.unwrapObservable(valueAccessor());
    var formatted = value.toString();

    formatted = formatted.replace(/[^0-9]/g, '');
    
    valueAccessor(formatted);
    
    return element.value= formatted;
  }
};

function vm() {
  this.num = ko.observable(0);
  this.num.subscribe(function(n) {
    console.log(n);
  })
}

ko.applyBindings(new vm())