js desabilitando a funcionalidade de backspace no firefox

Eu tenho seguindo javascript para impedir que o usuário digite caracteres inválidos em um campo de texto. Está funcionando bem no chrome, mas não no firefox. Está impedindo obackspace chave a ser inserida no campo de texto no firefox.

function onlyNumbers(evt) {
    var theEvent = evt || window.event;
    var key = theEvent.keyCode || theEvent.which;
    key = String.fromCharCode( key );
    var regex = /[0-9]|\./;
    if( !regex.test(key) ) {
        theEvent.returnValue = false;
        if(theEvent.preventDefault) theEvent.preventDefault(); 
    }
}

Alguém pode por favor dar uma olhada e propor uma correção para o firefox para não impedir que a tecla backspace atue em um campo de texto?

Provavelmente, adicionar o regex para o caractere de backspace faria o trabalho aqui. Alguém sabe, como adicionar o regex para combinar obackspace

Editar:

Além disso, o código acima supostamente foi interrompido com oAba comportamento chave, não consigo saltar para os próximos campos no formulário usandoAba chave.

questionAnswers(2)

yourAnswerToTheQuestion