JS 驗證輸入框輸入 只允許輸入正實數(正整數,正小數),其他情況下不能輸入 oninput事件


input標簽的oninput事件

要求輸入框只輸入正實數,包括整數和小數。

具體要求:整數部分不超過7位,可以沒有小數,若有位數不超過2位。

<input type="text" id="myId" value="0" style="width: 100px;" oninput="InputOnchange(this.id);" />
<script>
function InputOnchange(thisId) {
    //驗證數據
    var valueCurrent = document.getElementById(thisId).value;
    var value = valueCurrent;
    //不是數字
    if (/[^\d]/.test(valueCurrent)) {
        //含小數點
        if (valueCurrent.indexOf(".") != -1) {
            var valueArray = valueCurrent.split(".");
            //小數點不能首位
            if (valueCurrent.indexOf(".") == 0) {
                value = '';
            }
            //小數點只有一個
            else if (valueArray.length > 2) {
                value = valueCurrent.substring(0, valueCurrent.length - 1);
            }
            //小數位數為2,且是數字
            else if (valueArray[1].length > 2) {
                valueArray[1] = valueArray[1].substring(0, 2);//valueArray[1].length - 1
                if (/[^\d]/.test(valueArray[1])) {
                    valueArray[1] = valueArray[1].replace(/[^\d]/g,'');
                }
                value = valueArray.join('.');
            }
            //小數部分也只能是數字
            else if (/[^\d|\.]/.test(valueCurrent)) {
                value = valueCurrent.replace(/[^\d|\.]/g, '');
            }
        }
        else{
            value = valueCurrent.replace(/[^\d]/g, '');
        }
    }//開頭不能連續兩個0
    else if (valueCurrent.substring(0,1) == "0") {
        if (valueCurrent.substring(1,2) != ".") {
            value = "0";
        }
    }
    //整數位數不超過7位
    else if (valueCurrent.length>7) {
        value = valueCurrent.substring(0,7);
    }
    document.getElementById(thisId).value = value;
    //...省略部分代碼...//
}
</script> 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM