常用文本框輸入校驗

/*
功能說明:數字,字母,非負數,浮點數等的校驗
參數說明:
chkObject:判斷對象
chkFlg:判斷類型
1:非負浮點數 2:正整數 3:只有數字和點.
4:字母和數字 5:字母
返回值:有則爲true,否則爲false
*/
function checkObject(chkObject, chkFlg) {
    if (trim(chkObject.value) != "") {
        var tell = chkObject.value;
        tell = tell.replace(" ", "");
        tell = tell.replace("¥", "").replace("$", "");
        var exrep;
        switch (chkFlg) {
            case 0: //浮點數,可帶逗號的數字
                exrep = /^[-+]?(\d+\,)*\d+(\.\d+)?$/;
            case 1: //非負浮點數,可帶逗號的數字.
                exrep = /^(\d+\,)*\d+(\.\d+)?$/;
                break;
            case 2: //正整數+0
                exrep = /^\d+$/;
                break;
            case 3: //只有數字和點
                exrep = /^(\d+\.)*\d+?$/;
                break;
            case 4: //控制價格輸入,只能輸入帶2位小數
                exrep = /^\d{0,16}\.{0,1}(\d{1,2})?$/;
                break;
            case 5: //控制輸入,只能輸入帶4位小數
                exrep = /^\d{0,16}\.{0,1}(\d{1,4})?$/;
                break;
            case 6: //字母和數字
                exrep = /^([a-zA-Z0-9])*$/;
                break;
            case 7: //字母
                exrep = /^([a-zA-Z])*$/;
                break;
            case 8: //字母和數字但不能爲以下特殊字符:-,+,×,%,*  /^[a-zA-Z0-9]*[^-\+\*%]*$/;
                exrep = /^[a-zA-Z0-9]*[^+\*%]*$/;
                break;
            case 9:
                exrep = /^([1-9][0-9]?|100)$/; //折扣1-100
                break;
            case 10: //正數(整數或浮點數,最多兩位小數)
                exrep = /^[1-9][0-9]*\.{0,1}(\d{1,2})?$/;;
                break;
            case 11: //兩位數字
                exrep = /^[0-9][0-9]$/;
                break;
            case 12:
                //exrep = /^([1-3][0-1]?|31)$/; //1-31
                exrep = /^([1-9]|[1-2][0-9]|3[0-1])$/; //1-31
                //exrep = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
                break;
            case 13:
                exrep = /^[1-8]$/;
                break;
            case 14:
                exrep = /^([1-9][0-9]?|100)$/;
                break;
            case 15: //控制輸入,只能輸入帶4位小數的正負數
                exrep = /^[-+]?\d{0,16}\.{0,1}(\d{1,4})?$/;
                break;
            case 16: //手機號碼驗證
                //exrep = /^[1]+[3,4,5,7,8]+\d{9}/;
                exrep = /(^[0-9]{11}$)/;
                break;
            case 17: //正數(整數或浮點數,最多兩位小數)
                exrep = /^[1-9][0-9]*$/;;
                break;
            case 18: //數字
                exrep = /^([0-9])*$/;
                break;
            case 19: //2位小數.價格
                exrep = /^\d{0,16}\.{0,1}(\d{1,2})?$/;
                break;
            case 20: //2位小數.價格
                exrep = /^\d{0,16}\.{0,1}(\d{1,2})?$/;
                break;
            case 21: //2位正整數
                exrep = /^[1-9][0-9]$/;
                break;
            case 22:  // 1-5 的整數
                exrep = /^[1-5]$/;
                break;
            case 23:  // 0-4 的整數
                exrep = /^[0-4]$/;
                break;
            case 24:  //  正數(整數或浮點數,最多1位小數)
                exrep = /^[1-9][0-9]*\.{0,1}(\d{1,1})?$/;
                break;
            case 25: //數字和逗號
                exrep = /^[0-9,]+$/;
                break;
            case 26:
                exrep = /^[1-9]\d*$/;
                break;
            case 27:  //正整數
                exrep = /^\d+$/;
                break;
            case 28: //電話號碼
                exrep = /((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)/;
                break;
            case 29: //電子郵件驗證
                exrep = /^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
                break;
            case 30: //郵編
                exrep = /^[1-9]\d{5}$/;
                break;
            case 31:
                exrep = /^([1-4][0-9][0-9]|500|[1-9]|[1-9][0-9])$/; //1-500
                break;
            default:
                break;
                ;
        }
        if (chkFlg == 1) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請輸入非負數 ");
                chkObject.value = "0.00";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }

        if (chkFlg == 12) {

            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請輸入1-31正整數 ");
                chkObject.value = "1";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }

        if (chkFlg == 2) {
            if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
                alert("輸入類型不正確,請輸入正整數和0 ");
                chkObject.value = "0";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        if (chkFlg == 3) {
            if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
                alert("輸入類型不正確,請輸入數字 ");
                chkObject.value = "0.00";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        if (chkFlg == 4) {
            if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
                alert("輸入類型不正確,請輸入正確的格式如:0.00 ");
                chkObject.value = "0.00";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 5) {
            var hasComma = false;
            if (tell != "") {
                while (tell.indexOf(",") >= 0) {
                    tell = tell.replace(",", "");
                    hasComma = true;
                }
            }
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請輸入正確的格式如:0.0000 ");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
            else {
                if (hasComma) {
                    chkObject.value = tell;
                }
            }
        }
        else if (chkFlg == 6) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請輸入數字或字母!");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 9) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請輸入1—100的正整數!");
                chkObject.value = "100";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 10) {

            if (!exrep.test(tell)) {
                alert("輸入類型不正確,\r\n請輸入大於或等於1的正數值(最大隻能帶兩位小數)");
                chkObject.value = "1.00";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 11) {
            if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
                alert("編碼只能是兩位的數字,請重新輸入!");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 13) {
            if (!exrep.test(tell)) {
                alert("請輸入1-8之間的正整數!");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 14) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請輸入1—100的正整數!");
                chkObject.value = "1";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 15) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請輸入正確的格式如:0.0000的正負數");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 16) {
            if (!exrep.test(tell)) {
                alert("輸入的手機號碼不正確,請重新輸入!");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                //document.getElementById(chkObject.id).select();
                return false;
            }
        }
        else if (chkFlg == 17) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請輸入大於或等於1的正整數!");
                chkObject.value = "1";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 18) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請輸入數字!");
                chkObject.value = "1";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 19) {
            if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
                alert("輸入類型不正確,請輸入正確的格式如:0.00 ");
                chkObject.value = "0.00";
                document.getElementById(chkObject.id).focus();
                return false;
            }
            if (chkObject.value > 999999999999.999) {

                alert("輸入價格不能大於12位整數,請重新輸入!");
                chkObject.value = "0.00";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 20) {
            if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
                alert("輸入類型不正確,請輸入正確的格式如:0.00 ");
                chkObject.value = "0.00";
                document.getElementById(chkObject.id).focus();
                return false;
            }
            if (chkObject.value > 999999.99) {

                alert("輸入數值不能大於6位整數,請重新輸入!");
                chkObject.value = "0.00";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        } else if (chkFlg == 22) {
            if (!exrep.test(tell)) {
                alert("請輸入1-5之間的正整數!");
                chkObject.value = "1";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        } else if (chkFlg == 23) {
            if (!exrep.test(tell)) {
                alert("請輸入0-4之間的正整數!");
                chkObject.value = "2";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 24) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請輸入正整數(最大隻能帶一位小數)");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 25) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,只能輸入數字和逗號!");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 26) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,只能輸入大於0的正整數!");
                chkObject.value = "1";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 27) {
            if (!exrep.test(tell)) {//請輸入最多帶2位小數的數字
                alert("輸入類型不正確,請輸入正整數 ");
                chkObject.value = "1";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 28) {
            if (!exrep.test(tell)) {
                alert("輸入的電話號碼不正確,請重新輸入!");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 29) { //電子郵件格式檢查
            if (!exrep.test(tell)) {
                alert("輸入的郵件格式不正確,請重新輸入!");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 30) { //郵編格式檢查
            if (!exrep.test(tell)) {
                alert("輸入的郵編格式不正確,請重新輸入!");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else if (chkFlg == 31) {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,只能輸入1-500的正整數!");
                chkObject.value = "1";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }
        else {
            if (!exrep.test(tell)) {
                alert("輸入類型不正確,請重新輸入!");
                chkObject.value = "";
                document.getElementById(chkObject.id).focus();
                return false;
            }
        }

    }
    else {
        if (chkFlg == 10) {
            //alert("輸入類型不正確,\r\n請輸入大於或等於1的正數值(最大隻能帶兩位小數)");
            chkObject.value = "";
            document.getElementById(chkObject.id).focus();
            return false;
        }
        else if (chkFlg == 17) {
            chkObject.value = "1";
            document.getElementById(chkObject.id).focus();
            return false;
        } else if (chkFlg == 26) {
            chkObject.value = "1";
            document.getElementById(chkObject.id).focus();
            return false;
        }
        //        else {
        ////            alert("輸入類型不正確,請重新輸入");
        //            chkObject.value = "0";
        //            return false;
        //        }
    }
    return true;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章