<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    javascript驗證

    Posted on 2007-11-18 00:13 yukui 閱讀(188) 評論(0)  編輯  收藏 所屬分類: 技術(shù)
    格式
    null 是否為空判斷
    num 數(shù)字
    ab 字母
    chs 漢字
    bit 位數(shù)
    phone 電話格式
    email 電子郵件格式
    http 格式
    */
    function check_null(check_obj){
      var str = '';
      for(i = 0; i < check_obj.length; i++) {
        str = str + ' ';
      }
      return (str == check_obj);
    }

    function check_num(check_obj){
        var i,j,strTemp;
        //abcdefghijklmnopqrstuvwxyz
        strTemp="0123456789";
        if ( check_obj.length== 0)
            return false;
        for (i=0;i<check_obj.length;i++)
        {
           j=strTemp.indexOf(check_obj.charAt(i));
           if (j==-1)
           {
             return false;
           }
        }
        return true;
    }

    function check_ab(check_obj){
     
        var i,j,strTemp;
        
        strTemp="abcdefghijklmnopqrstuvwxyz";
        if ( check_obj.length== 0)
            return false;
        for (i=0;i<check_obj.length;i++)
        {
           j=strTemp.indexOf(check_obj.charAt(i));
           if (j==-1)
           {
             return false;
           }
        }
        return true;
    }

    function check_chs(check_obj){
        if(check_obj.search(/[^\x00-\x80]/)>=0){
         return true;
        }else{
            return false;
        }
         
    }

    function check_bit(check_obj,bit_obj){
      arry_str = bit_obj.split('_');
      var obj_length = check_obj.length;
      
      switch(arry_str[2]){
       case ">":
            if(obj_length>arry_str[1]){
              return true;
            }
            break;
       case "<":
            if(obj_length<arry_str[1]){
              return true;
            }
            break;
       case ">=":
            if(obj_length>=arry_str[1]){
              return true;
            }
            break;
       case "<=":
            if(obj_length<=arry_str[1]){
              return true; 
            }
            break;
      }
      return false;
    }

    function check_phone(check_obj){
     
      if(check_obj.search(/[0-9]{4}\-[0-9]*/)>=0){
       return true;
        }else{
            return false;
        }
      
    }

    function check_email(check_obj){
        
        if(check_obj.search(/^[\w-]+@[\w-]+\.[A-Za-z0-9]{2,}$/)>=0){
            return true;
          }else{
            return false;
          }
    }

    function check_http(check_obj){
        if(check_obj.search(/^https?:\/\/((\w|-)+\.)+\w+\/?$/i)>=0){
            return true;
            }else{
            return false;
            }
    }

    /*************************************************
    * 函數(shù)用途:自動檢測表單
    * 參數(shù):form_name 要提交的form對象名字
    *      input_arry 要檢測input控件對象組
    *      input_arry參數(shù)數(shù)組的第一個位置是
    *      控件的名字,第二個位置是如果出錯
    *      要顯示的錯誤信息字符串,第三個位
    *      置是檢測范圍標(biāo)志,如果多標(biāo)志可以
    *      用,分開。例如'num,null'不能空,
    *      并且只能為數(shù)字
    */
    function auto_check_form(form_name,input_arry){
     
     for(var num in input_arry){
         
         alert('ok');
         alert_flag=0;
         arry_str = input_arry[num][2].split(',');
       
         
         for(var es_num in arry_str){
           
           switch(arry_str[es_num]){
             case "null":
                  if(check_null(input_arry[num][0].value)==true){
                    alert_flag=1; 
                  }
                  break;
             case "num":
                  if(check_num(input_arry[num][0].value)==false){
                    alert_flag=1;
                  }
                  break
             case "ab":
                  if(check_ab(input_arry[num][0].value)==false){
                    alert_flag=1;
                  }
                  break;
             case "chs":
                 if(check_chs(input_arry[num][0].value)==false){
                   alert_flag=1;
                 }
                  break;
             case "phone":
                 if(check_phone(input_arry[num][0].value)==false){
                  alert_flag=1;
                 }
                  break;
             case "email":
                 if(check_email(input_arry[num][0].value)==false){
                     alert_flag=1;
                 }
                  break;
             case "http":
                 if(check_http(input_arry[num][0].value)==false){
                  alert_flag=1;
                 }
                  break;
             default:
                
           }
           if(arry_str[es_num].search(/bit_*/)>=0){
            if(check_bit(input_arry[num][0].value,arry_str[es_num])==false){
              alert_flag=1;
            }
           }       
         }
         if(alert_flag==1){
             alert(input_arry[num][1]);
             return 0;
         }
       
     
     }
     form_name.submit();
       
    }


    注:checkspace函數(shù)是檢測是否為空

    html方調(diào)用通過數(shù)組和控件對象名字,對比模式的方式來得到更多的判斷支持,比如第2個參數(shù)中數(shù)組的第3個參數(shù)可以這樣寫:

    onclick=“auto_check_form(test1,
    [
     [text_1,'不能空并且只能是數(shù)字','null,num'],
     [text_2,'不能為空只能為字母','null,ab'],
     [text_3,'不能小于9位','null,num,bit_9_>'],
     [text_4,'電話號碼輸入錯誤','null,phone,bit_13_<='],
     [text_5,'請輸入漢字做名字','null,chs,bit_6_>']
    ]);">“

    null,phone,bit_13_<=這些都是匹配符。

    ¢//校驗是否全由數(shù)字組成
    function isDigit(s)
    {
        var patrn=/^[0-9]{1,20}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗登錄名:只能輸入5-20個以字母開頭、可帶數(shù)字、“_”、“.”的字串
    function isRegisterUserName(s)
    {
        var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗用戶姓名:只能輸入1-30個以字母開頭的字串
    function isTrueName(s)
    {
        var patrn=/^[a-zA-Z]{1,30}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗密碼:只能輸入6-20個字母、數(shù)字、下劃線
    function isPasswd(s)
    {
        var patrn=/^(\w){6,20}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗普通電話、傳真號碼:可以“+”開頭,除數(shù)字外,可含有“-”
    function isTel(s)
    {
        //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;
        var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗手機(jī)號碼:必須以數(shù)字開頭,除數(shù)字外,可含有“-”
    function isMobil(s)
    {
        var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗郵政編碼
    function isPostalCode(s)
    {
        //var patrn=/^[a-zA-Z0-9]{3,12}$/;
        var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗搜索關(guān)鍵字
    function isSearch(s)
    {
        var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;\'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;\'\,.<>?]{0,19}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    function isIP(s)  //by zergling
    {
        var patrn=/^[0-9.]{1,20}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    ¢//校驗是否全由數(shù)字組成
    function isDigit(s)
    {
        var patrn=/^[0-9]{1,20}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗登錄名:只能輸入5-20個以字母開頭、可帶數(shù)字、“_”、“.”的字串
    function isRegisterUserName(s)
    {
        var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗用戶姓名:只能輸入1-30個以字母開頭的字串
    function isTrueName(s)
    {
        var patrn=/^[a-zA-Z]{1,30}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗密碼:只能輸入6-20個字母、數(shù)字、下劃線
    function isPasswd(s)
    {
        var patrn=/^(\w){6,20}$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗普通電話、傳真號碼:可以“+”開頭,除數(shù)字外,可含有“-”
    function isTel(s)
    {
        //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;
        var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗手機(jī)號碼:必須以數(shù)字開頭,除數(shù)字外,可含有“-”
    function isMobil(s)
    {
        var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
        if (!patrn.exec(s)) return false
        return true
    }

    //校驗郵政編碼
    function isPostalCode(s)
    {
        //var patrn=/^[a-zA-Z0-9]{3,12}$/;
        var patrn=/^[a-zA-Z0-9 ]{3,12}$/;

    /*********************************************************************************
     * FUNCTION:  isBetween
     * PARAMETERS:  val  AS any value
     *     lo  AS Lower limit to check
     *     hi  AS Higher limit to check
     * CALLS:   NOTHING
     * RETURNS:  TRUE if val is between lo and hi both inclusive, otherwise false.
     **********************************************************************************/
     function isBetween (val, lo, hi) {
      if ((val < lo) || (val > hi)) { return(false); }
      else { return(true); }
     }
     /*********************************************************************************
     * FUNCTION:  isDate checks a valid date
     * PARAMETERS:  theStr  AS String
     * CALLS:   isBetween, isInt
     * RETURNS:  TRUE if theStr is a valid date otherwise false.
     **********************************************************************************/
     function isDate (theStr) {
      var the1st = theStr.indexOf('-');
      var the2nd = theStr.lastIndexOf('-');
      
      if (the1st == the2nd) { return(false); }
      else {
       var y = theStr.substring(0,the1st);
       var m = theStr.substring(the1st+1,the2nd);
       var d = theStr.substring(the2nd+1,theStr.length);
       var maxDays = 31;
       
       if (isInt(m)==false || isInt(d)==false || isInt(y)==false) {
        return(false); }
       else if (y.length < 4) { return(false); }
       else if (!isBetween (m, 1, 12)) { return(false); }
       else if (m==4 || m==6 || m==9 || m==11) maxDays = 30;
       else if (m==2) {
        if (y % 4 > 0) maxDays = 28;
        else if (y % 100 == 0 && y % 400 > 0) maxDays = 28;
       else maxDays = 29;
       }
       if (isBetween(d, 1, maxDays) == false) { return(false); }
       else { return(true); }
      }
     }
     /********************************************************************************
     *   FUNCTION:       Compare Date! Which is the latest!
     *   PARAMETERS:     lessDate,moreDate AS String
     *   CALLS:          isDate,isBetween
     *   RETURNS:        TRUE if lessDate<moreDate
     *********************************************************************************/
     function isComdate (lessDate , moreDate)
     {
      if (!isDate(lessDate)) { return(false);}
      if (!isDate(moreDate)) { return(false);}
      var less1st = lessDate.indexOf('-');
      var less2nd = lessDate.lastIndexOf('-');
      var more1st = moreDate.indexOf('-');
      var more2nd = moreDate.lastIndexOf('-');
      var lessy = lessDate.substring(0,less1st);
      var lessm = lessDate.substring(less1st+1,less2nd);
      var lessd = lessDate.substring(less2nd+1,lessDate.length);
      var morey = moreDate.substring(0,more1st);
      var morem = moreDate.substring(more1st+1,more2nd);
      var mored = moreDate.substring(more2nd+1,moreDate.length);
      var Date1 = new Date(lessy,lessm,lessd); 
      var Date2 = new Date(morey,morem,mored); 
      if (Date1>Date2) { return(false);}
       return(true); 
       
     }

     /*********************************************************************************
     * FUNCTION isEmpty checks if the parameter is empty  or null
     * PARAMETER str  AS String
     **********************************************************************************/
     function isEmpty (str) {
         if ((str==null)||(str.length==0)) return true;
         else return(false);
     }


     /*********************************************************************************
     * FUNCTION isAllEmpty checks if all the character is empty  or null
     * PARAMETER str  AS String
     **********************************************************************************/
     function isAllEmpty (str)
      {
      if ((str==null)||(str.length==0)) return true;
      else
       {
       for (var i=0; i<str.length; i++)
        {
        if (str.substring(i,i+1)!=" ") return false;
        }
       return true
       }
      }

     /*********************************************************************************
     * FUNCTION:  isInt
     * PARAMETER:  theStr AS String 
     * RETURNS:  TRUE if the passed parameter is an integer, otherwise FALSE
     * CALLS:   isDigit
     **********************************************************************************/
     function isInt (theStr) {
      var flag = true;

      if (isEmpty(theStr)) { flag=false; }
      else
      { for (var i=0; i<theStr.length; i++) {
        if (isDigit(theStr.substring(i,i+1)) == false) {
         flag = false; break;
        }
       }
      }
      return(flag);
     }

     /*********************************************************************************
     * FUNCTION:  isReal
     * PARAMETER: heStr AS String 
              decLen AS Integer (how many digits after period)
     * RETURNS:  TRUE if theStr is a float, otherwise FALSE
     * CALLS:   isInt
     **********************************************************************************/
     function isReal (theStr, decLen) {
      var dot1st = theStr.indexOf('.');
      var dot2nd = theStr.lastIndexOf('.');
      var OK = true;
      if (isEmpty(theStr)) return false;

      if (dot1st == -1) {
       if (!isInt(theStr)) return(false);
       else return(true);
      }
      else if (dot1st != dot2nd) return (false);
      else if (dot1st==0) return (false);
      else {
       var intPart = theStr.substring(0, dot1st);
       var decPart = theStr.substring(dot2nd+1);

       if (decPart.length > decLen) return(false);
       else if (!isInt(intPart) || !isInt(decPart)) return (false);
       else if (isEmpty(decPart)) return (false);
       else return(true);
      }
     }

     /*********************************************************************************
     * FUNCTION:  isEmail
     * PARAMETER:  String (Email Address)
     * RETURNS:  TRUE if the String is a valid Email address
     *     FALSE if the passed string is not a valid Email Address
     * EMAIL FORMAT: AnyName@EmailServer e.g; webmaster@hotmail.com
     *     @ sign can appear only once in the email address.
     *********************************************************************************/
     function isEmail (theStr) {
      var atIndex = theStr.indexOf('@');
      var dotIndex = theStr.indexOf('.', atIndex);
      var flag = true;
      theSub = theStr.substring(0, dotIndex+1)

      if ((atIndex < 1)||(atIndex != theStr.lastIndexOf('@'))||(dotIndex < atIndex + 2)||(theStr.length <= theSub.length)) 
      { return(false); }
      else { return(true); }
     }
     /*********************************************************************************
     * FUNCTION:  newWindow
     * PARAMETERS:  doc   -> Document to open in the new window
          hite  -> Height of the new window
          wide  -> Width of the new window
          bars -> 1-Scroll bars = YES 0-Scroll Bars = NO
          resize  -> 1-Resizable = YES 0-Resizable = NO
     * CALLS:   NONE
     * RETURNS:  New window instance
     **********************************************************************************/
     function newWindow (doc, wide, hite, bars, resize) {
      var opt="toolbar=0,location=0,directories=0,status=0,menubar=0,";
      var l = Math.floor((screen.width-wide)/2);
      var t = Math.floor((screen.height-hite)/2);
      opt+=("scrollbars="+bars+",");
      opt+=("resizable="+resize+",");
      opt+=("width="+wide+",");
      opt+=("height="+hite+",");
      opt+=("top="+t+",");
      opt+=("left="+l);
      winHandle=window.open(doc,'',opt);
      return;
     }

     //校驗數(shù)字:0-9數(shù)字的組合
     function isDigit(s)
     {
      var patrn=/^[0-9]{1,20}$/;
      if (!patrn.exec(s)) return false
      return true
     }

    posts - 131, comments - 12, trackbacks - 0, articles - 32

    Copyright © yukui

    主站蜘蛛池模板: 亚洲AV无码一区二区三区牛牛| 久久精品国产亚洲夜色AV网站| 国产精品亚洲а∨无码播放麻豆 | 无码一区二区三区亚洲人妻| 亚洲中文无码线在线观看| 91精品国产免费入口| 亚洲福利视频网站| 好爽…又高潮了免费毛片| 亚洲精品国产自在久久 | 国产亚洲中文日本不卡二区 | 中文字幕无线码免费人妻| 亚洲AV日韩AV天堂一区二区三区| 50岁老女人的毛片免费观看| 免费不卡中文字幕在线| 亚洲成A人片在线播放器| 免费一级毛片在线播放| 中文字幕视频免费| 亚洲成熟丰满熟妇高潮XXXXX| 最近中文字幕无免费| 亚洲av无一区二区三区| 免费A级毛片无码免费视| 天堂亚洲免费视频| 国产资源免费观看| 亚洲视频在线观看视频| 日韩视频免费在线| 国产免费无码一区二区| 亚洲三级中文字幕| 国产成人精品久久亚洲高清不卡 | 无码国产精品一区二区免费vr| 亚洲欧美精品午睡沙发| 日本亚洲视频在线 | 在线观看特色大片免费视频| 日韩国产欧美亚洲v片| 亚洲电影在线免费观看| 亚洲日韩精品A∨片无码| 永久中文字幕免费视频网站| 最近中文字幕无免费| 一级成人生活片免费看| 狠狠综合亚洲综合亚洲色| 亚洲男人天堂2018av| 亚洲综合免费视频|