JSFiddle - React, Tailwind, and code Playground

HTML

<input type="text" max="40" class="singleSpace" />

JavaScript

var val="";
$('.singleSpace').keyup(function() {
    var ele = $(this)[0];
    var foo = ele.value;
    if(val==foo){return false}
    var startPos = ele.selectionStart;
    var endPos = ele.selectionEnd;
    if(event.keyCode==8){
        var diff=endPos-startPos;
        startPos-=diff;
        endPos-=diff;
    }
    foo = foo.replace(new RegExp('( )','g'),'');
    foo = foo.replace(new RegExp('^ *(.) *(.*?)'),'$1 $2');
    val=foo;
    ele.value=foo;
    ele.selectionStart=startPos;
    ele.selectionEnd=endPos;
});