<input type='text' onkeyup="clearNoNum(this)">
function clearNoNum(obj){
obj.value = obj.value.replace(/[^\d.]/g,"");
obj.value = obj.value.replace(/^\./g,"");
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');
}
建议使用:
<input type='number' name="price" id="price" onblur="priceBlur()">
function priceBlur() {
var price = document.getElementById("price").value;
if(price > 99){
console.log("超出选择范围~");
document.getElementById("price").value = 99;
}else if(price < 1){
console.log("低于选择范围~");
document.getElementById("price").value = 1;
}else if(price.toString().indexOf(".") > 0 && Number(price.toString().split(".")[1].length) > 2) {
console.log("小数点不能超过2位~");
document.getElementById("price").value = Math.round(price * 100)/100;
}
}