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(/^0\d[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+)\.(\d\d).*$/,'$1$2.$3'); 19 if(t == '-'){ return; } 20 21 }
原文:https://blog.csdn.net/emsoc/article/details/79727095