天天看點

表單 驗證,手機 ,QQ,電子郵箱,數字,郵政編碼,身份證,手機号 & 電話 - songyijian321

表單 驗證,手機 ,QQ,電子郵箱,數字,郵政編碼,身份證,手機号 & 電話

好吧寫一個自己的表單驗證,臨時的。

後面還更新:現在依賴jq

//表單驗證 
    function testInput(o,attr,yfn,nfn,run){
        var re = {
            \'age\'    :/^[^0]\d{0,2}$/,
            \'null\'    :/\s/,
            \'qq\'     : /^[1-9][0-9]{4,9}$/,                    //QQ
            \'email\' : /^\w+@[a-z0-9]+(\.[a-z]+){1,3}$/, //電子郵箱
            \'number\': /^\d+$/,                            //數字
            \'mail\'    :/^[1-9]\d{5}$/,                        //郵政編碼
            \'id\'    :/^[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x$/,    //身份證
            \'call\'    :/(^(\d{3,4}-)?\d{7,8})$|(1[3,4,5,8][0-9]{9})/    //手機号 & 電話
        };
        
        function fyes(){
            o.removeClass(\'no_verify\');
            if(yfn)yfn()
            return o.val();
        }
        function fno(){
            o.addClass(\'no_verify\');
            if(nfn)nfn()
            console.log(\'錯誤資訊:\'+attr)
            return false;
        }
        function go(){
            if(attr && typeof attr !=\'number\'){
                if(o.val() && re[attr].test(o.val())){
                    return fyes()
                }else{
                    return fno()
                }
            }else if(attr && typeof attr ==\'number\'){
                if(o.val().length>attr){
                    return fyes()
                }else{
                    return fno()
                }
            }else if(!attr){
                if(o.val()){
                    return fyes()
                }else{
                    return fno()
                }
            }
        };
        if(run){ return go() }    //run=true  驗證一下表單
        o.blur(go);
    };      
試用方法  ://testInput(  JQ對象 ,  \'驗證屬性 || 不傳值驗證表單不為空 || 數字 驗證位元組不少于這個數\' , \'驗證成功fn\'  ,  \'失敗fn\' , 要不要自執行)      

(最後一個值為 false :驗證成功傳回值,不成功會傳回false; 這裡還會對表單加一個class樣式:no_verify)

var f2=testInput($(\'#phone\'), \'call\',\'\',\'\',false)  //驗證是不是電話或手機

var f5=testInput($(\'#userName\'), \'\',\'\',\'\',false) //表單不為空

var f12=testInput($(\'#reason\'),20,\'\',\'\',false)  //表單不小于20個