總結js實現驗證html文本框輸入只能為數字


第一種:輸入整形判斷

       function getEvent() {
            if (document.all) { return window.event; } //for ie
            func = getEvent.caller;
            while (func != null) {
                var arg0 = func.arguments[0];
                if (arg0) {
                    if ((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof (arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) {
                        return arg0;
                    }
                }
                func = func.caller;
            }
            return null;
        }
        function isnumber() {
            var ev = getEvent();
       if (ev.keyCode == 8) return true; //可刪除 if (ev.keyCode < 48 || ev.keyCode > 57) return false; }

<input id="Text1" name="btntest" type="text" style="IME-MODE: disabled;" onkeydown="return isnumber()" onpaste="return false" ondragenter="return false"/>

 

第二種:輸入浮點和整形判斷

function isnumber(obj) {
            if (isNaN(obj.value)) {
                obj.value = "";
                return false;
            }
            return true;
        } 

<input id="Text1" name="btntest" type="text" style="IME-MODE: disabled;" onkeyup="isnumber(this)" onpaste="return false" ondragenter="return false"/>

 

第三種:推薦,能夠判斷中文輸入法

/**
 * @description 給指定文本框綁定輸入驗證(適合非中文輸入法輸入驗證),如驗證輸入必須為數字VerifyInput("txtNumber","[^\\d]");
 * @param controlId 需要綁定文本框id
 * @param regex 驗證正則表達式(取反),如果正則表達式中有斜杠,使用雙斜杠
 */
function VerifyInput(controlId, regex) {
    var myRegExp = new RegExp(regex, 'g');
    $("#" + controlId).bind("input propertychange", function () {
        this.value = this.value.replace(myRegExp, '');
    });
}

頁面調用

<input id="txtNumber" type="text" class="input form-control" style="ime-mode:disabled" onpaste="return false" ondragenter="return false" />

$(function () {
    VerifyInput("txtNumber", "[^\\d]");//驗證文本框輸入必須為數字
});

參考:https://www.cnblogs.com/llguanli/p/7340708.html

 

第四種:限制只能輸入整數和浮點判斷,推薦

function verifyIsNumberStart(control) {
            if (!control.value.match(/^[\+\-]?\d*?\.?\d*?$/))
                control.value = control.t_value;
            else
                control.t_value = control.value;
            if (control.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))
                control.o_value = control.value
        }
        function verifyIsNumberEnd(control) {
            if (!control.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))
                control.value = control.o_value;
            else
            {
                if (control.value.match(/^\.\d+$/))
                    control.value = 0 + control.value;
                if (control.value.match(/^\.$/))
                    control.value = 0;
                control.o_value = control.value
            }
        }

<input type="text" onkeypress="verifyIsNumberStart(this)" onkeyup="verifyIsNumberStart(this)" onblur="verifyIsNumberEnd(this)" ondragenter="return false"/>

 


免責聲明!

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



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