<input value="" oninput="this.value = regular_deal(this.value,2)">
<input value="" oninput="this.value = fregular_deal(this.value,4)">
<script>
//只处理正浮点数,number为保留位数
function regular_deal(val,number) {
let reg = new RegExp("^(\\d+\\.\\d{0,"+number+"}).*$")
return val.replace(/[^\d\.]/g,'').replace(/^\./,'').replace(/\./,'@#$').replace(/\./g,'').replace('@#$','.').replace(reg,"$1");
}
//可以处理负浮点数,number为保留位数
function fregular_deal(val,number) {
let reg = new RegExp("^(-{0,1}\\d+\\.\\d{0,"+number+"}).*$")
return val.replace(/[^-\d\.]/g,'').replace(/^\./,'').replace(/\./,'@#$').replace(/\./g,'').replace('@#$','.').replace(/^-/,'#$%').replace(/-/g,'').replace('#$%','-').replace(reg,"$1");
}
</script>