復制代碼 代碼如下:
function validateNum(obj) {
    //正整數(此處用了緩存)
    var number = obj.data(validate).number;
    //小數點(此處用了緩存)
    var decimal = obj.data(validate).decimal;
    //動態基本驗證正則
    eval("var reg = /^[0-9]{0," + number + "}([.]?[0-9]{0," + decimal + "})$" + "/g;");
    var value = obj.val();
    var maxnumlen = number + decimal + 1; //最大長度 + 1(小數點)
    if (!reg.test(obj.val())) return false;
    //最大長度等于當前值的長度并且值沒有"."
    if (maxnumlen == value.length && value.indexOf('.') <= 0) {
        return false;
    }
    //嘗試得到"."的索引
    var valueindexof = value.indexOf('.');
    if (valueindexof > 0) {
        //如果"."索引后一位是空那么肯定是返回false
        if (value.charAt(valueindexof + 1) == "") {
            return false;
        }
    }
    //分割值就很容易判斷出前后內容
    var valuesplit = value.split('.');
    //如果值的長度大于定義的正整數長度 
    if (value.length > number) {
        if (valuesplit.length == 1) {
            return false;
        }
        //最大長度-所定義長度 大于 最大長度 即超長 ,false.
        if (maxnumlen - number >= maxnumlen) {
            return false;
        }
    }
    return true;
}
新聞熱點
疑難解答
圖片精選