軟件是對質量的不懈追求

          jquery validate自定義驗證方法


           /* 追加自定義驗證方法 */   
           
          // 身份證號碼驗證   
           jQuery.validator.addMethod("idcardno"function(value, element) {
             
          return this.optional(element) || isIdCardNo(value);   
           }, 
          "請正確輸入身份證號碼");
           
            
          //字母數字
           jQuery.validator.addMethod("alnum"function(value, element) {
             
          return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value);
           }, 
          "只能包括英文字母和數字");
           
            
          // 手機號碼驗證   
           jQuery.validator.addMethod("cellphone"function(value, element) {
             
          var length = value.length;
             
          return this.optional(element) || (length == 11 && /^(1\d{10})$/.test(value));
           }, 
          "請正確填寫手機號碼"); 
           
            
          // 電話號碼驗證   
           jQuery.validator.addMethod("telephone"function(value, element) {
             
          var tel = /^(\d{3,4}-?)?\d{7,9}$/g;
             
          return this.optional(element) || (tel.test(value));
           }, 
          "請正確填寫電話號碼");
           
           
          // 郵政編碼驗證
           jQuery.validator.addMethod("zipcode"function(value, element) {
             
          var tel = /^[0-9]{6}$/;
             
          return this.optional(element) || (tel.test(value));
           }, 
          "請正確填寫郵政編碼");
           
            
          // 漢字
           jQuery.validator.addMethod("chcharacter"function(value, element) {
             
          var tel = /^[\u4e00-\u9fa5]+$/;
             
          return this.optional(element) || (tel.test(value));
           }, 
          "請輸入漢字");
           
           
          /**
           * 身份證號碼驗證
           *
           
          */
          function isIdCardNo(num) {

           
          var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
           
          var parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");
           
          var varArray = new Array();
           
          var intValue;
           
          var lngProduct = 0;
           
          var intCheckDigit;
           
          var intStrLen = num.length;
           
          var idNumber = num;
             
          // initialize
               if ((intStrLen != 15&& (intStrLen != 18)) {
                   
          return false;
               }
               
          // check and set value
               for(i=0;i<intStrLen;i++) {
                   varArray[i] 
          = idNumber.charAt(i);
                   
          if ((varArray[i] < '0|| varArray[i] > '9') && (i != 17)) {
                       
          return false;
                   } 
          else if (i < 17) {
                       varArray[i] 
          = varArray[i] * factorArr[i];
                   }
               }
               
               
          if (intStrLen == 18) {
                   
          //check date
                   var date8 = idNumber.substring(6,14);
                   
          if (isDate8(date8) == false) {
                      
          return false;
                   }
                   
          // calculate the sum of the products
                   for(i=0;i<17;i++) {
                       lngProduct 
          = lngProduct + varArray[i];
                   }
                   
          // calculate the check digit
                   intCheckDigit = parityBit[lngProduct % 11];
                   
          // check last digit
                   if (varArray[17!= intCheckDigit) {
                       
          return false;
                   }
               }
               
          else{        //length is 15
                   //check date
                   var date6 = idNumber.substring(6,12);
                   
          if (isDate6(date6) == false) {

                       
          return false;
                   }
               }
               
          return true;
               
           }
          /**
           * 判斷是否為“YYYYMM”式的時期
           *
           
          */
          function isDate6(sDate) {
             
          if(!/^[0-9]{6}$/.test(sDate)) {
                
          return false;
             }
             
          var year, month, day;
             year 
          = sDate.substring(04);
             month 
          = sDate.substring(46);
             
          if (year < 1700 || year > 2500return false
             
          if (month < 1 || month > 12return false
             
          return true
          }
          /**
           * 判斷是否為“YYYYMMDD”式的時期
           *
           
          */
          function isDate8(sDate) {
             
          if(!/^[0-9]{8}$/.test(sDate)) {
                
          return false;
             }
             
          var year, month, day;
             year 
          = sDate.substring(04);
             month 
          = sDate.substring(46);
             day 
          = sDate.substring(68);
             
          var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
             
          if (year < 1700 || year > 2500return false
             
          if (((year % 4 == 0&& (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
             
          if (month < 1 || month > 12return false
             
          if (day < 1 || day > iaMonthDays[month - 1]) return false
             
          return true
          }




          posted on 2010-03-30 11:30 BlakeSu 閱讀(3022) 評論(2)  編輯  收藏

          評論

          # re: jquery validate自定義驗證方法[未登錄] 2014-10-09 10:21 123

          12  回復  更多評論   

          # re: jquery validate自定義驗證一天一天、、hgfhf6464\5454 2014-12-22 14:31 321321

          432432  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 昭通市| 枣强县| 额敏县| 新巴尔虎右旗| 浏阳市| 广平县| 麻栗坡县| 乌拉特前旗| 上蔡县| 白朗县| 万全县| 丽水市| 茶陵县| 鲁山县| 郎溪县| 栾川县| 铜陵市| 虹口区| 宣武区| 怀柔区| 台江县| 桃江县| 增城市| 和龙市| 秀山| 临邑县| 子洲县| 邹平县| 洛南县| 栖霞市| 朝阳区| 莆田市| 交口县| 浦县| 巩留县| 新民市| 沂源县| 惠来县| 台北市| 建平县| 桐城市|