下面通過一段代碼給大家介紹JS控制只能輸入數字并且最多允許小數點兩位,具體代碼如下所示:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><input type="text" name="je" onblur="clearNoNum(this)"/>元<script type="text/javascript"> 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 != "") {//以上已經過濾,此處控制的是如果沒有小數點,首位不能為類似于 01、02的金額 obj.value = parseFloat(obj.value); } if (!obj.value || obj.value == '0' || obj.value == '0.0' || obj.value == '0.00') { alert('退款金額不能為空'); return; } // 正常得話繼續調后端接口 } </script></body></html>
ps:js如何限制input輸入框只能輸入數字
代碼中我是這樣實現的:
<input type="text" class="form-control match-rotation-input" maxlength="3" οnkeyup="value=value.replace(/[^/d]/g,'')"http://輸入時校驗 οnblur="value=value.replace(/[^/d]/g,'')"http://失去焦點時校驗 ng-model="schedule.round" placeholder="請輸入數字">
添加了一行οnkeyup="value=value.replace(/[^/d]/g,'')"
這里運用了正則表達式來處理比較簡單,然后添加提示語:placeholder="請輸入數字"。
但是為什么還要加οnblur="value=value.replace(/[^/d]/g,'')"
這一行呢?
這是因為在操作的過程中,會發現如果你一直常按著字母鍵,然后點擊鼠標讓input失去焦點,
會導致在input框中出現字母,所以為了避免這個問題,后面又加入了οnblur="value=value.replace(/[^/d]/g,'')"
注意:之前想過改type為:number類型 但是出來的樣式不符合我們要的,所以采用了正則來匹配
總結
以上所述是小編給大家介紹的JS控制只能輸入數字并且最多允許小數點兩位的相關知識,希望對大家有所幫助!
新聞熱點
疑難解答