input框 限制只能输入金额(-.数字)
1 <input type="text" onkeyup="onlyNumber(this)"/> 2 3 function onlyNumber(obj){ 4 5 //得到第一个字符是否为负号 6 var t = obj.value.charAt(0); 7 //先把非数字的都替换掉,除了数字和.和-号 8 obj.value = obj.value.replace(/[^d.-]/g,''); 9 //前两位不能是0加数字 10 obj.value = obj.value.replace(/^0d[0-9]*/g,''); 11 //必须保证第一个为数字而不是. 12 obj.value = obj.value.replace(/^./g,''); 13 //保证只有出现一个.而没有多个. 14 obj.value = obj.value.replace(/.{2,}/g,'.'); 15 //保证.只出现一次,而不能出现两次以上 16 obj.value = obj.value.replace('.','$#$').replace(/./g,'').replace('$#$','.'); 17 //如果第一位是负号,则允许添加 18 obj.value = obj.value.replace(/^(-)*(d+).(dd).*$/,'$1$2.$3'); 19 if(t == '-'){ return; } 20 21 }
原文:https://blog.****.net/emsoc/article/details/79727095