моё мнение: плохая идея.
Ненужно реплейсить то, что ввёл пользователь и тем более по события keyup.
Лучше будет лишь делать проверку на валидность данных и уведомлять его собщением или красной рамкой/пиктограмкой, что он не то вписывает.

Код:
<script type="text/javascript">
var pat = new RegExp('^([0-9]+\.)?[0-9]+$');
function check(el){
if(pat.test( el.value)){
el.style.cssText = 'border:1px solid green';
}else{
el.style.cssText = 'border:1px solid red';
}
}
</script>
<input type="text" value="" onkeyup="check(this);" onblur="check(this);" />