只能输入数字
方法一:
<input type="text" onkeyup='capCodes(this)'/>
function capCodes(obj){
obj.value = obj.value.replace(/[^\d]/g,""); //清除“数字”以外的字符
}
方法二:
<input type='text' onkeyup="this.value=this.value.replace(/[^0-9-]+/,'');" />
方法三:
前面的可以输入“-”,这个不可以
<input style="border-radius:5px;border: 1px solid #DBDBDB;" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
输入数字和小数点
<input type="text" onkeyup='getNum(this)'/>
function getNum(obj){//只可以输入数字和小数点,使用文本改变事件 onkeyup
if(obj.value.indexOf(".") == 0){//第一位数不能为小数点
obj.value = '';
}
obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
obj.value = obj.value.replace(/\.{2,}/g,"."); //可以添加小数点
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); //只保留第一个.清除多余的
}
保留两位小数
将要保留小数的值传入parseFloat(这里),保留的小数位可以设置
parseFloat(10.00020).toFixed(2); //10.00
保留两位小数,小数前的数超出三位以逗号隔开
直接调用下面的JS就可以
function returnFloat(s){//添加小数后两位
if (/[^0-9\.]/.test(s))
return "";
if (s == null || s == "")
return "";
s = s.toString().replace(/^(\d*)$/, "$1.");
s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
s = s.replace(".", ",");
var re = /(\d)(\d{3},)/;
while (re.test(s))
s = s.replace(re, "$1,$2");
s = s.replace(/,(\d\d)$/, ".$1");
return s;
}