工做中input='text'總會遇到要控制輸入數字,或者是輸入中文,輸入電話,輸入身份證號,郵箱等。今天我遇到的是要輸入數字而且只能小數點後面兩位的數字,還不能爲負數。javascript
javascripthtml
//控制只能輸入小數點後2位 function clearNoNum(obj) { obj.value = obj.value.replace(/[^\d.]/g, ""); //清除「數字」和「.」之外的字符 obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一個. 清除多餘的 obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能輸入兩個小數 if (obj.value.indexOf(".") < 0 && obj.value != "") {//以上已通過濾,此處控制的是若是沒有小數點,首位不能爲相似於 0一、02的金額 obj.value = parseFloat(obj.value); } }
htmljava
<input id="testinput" oninput="clearNoNum(this)" />