軟件是對質量的不懈追求

          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 閱讀(3025) 評論(2)  編輯  收藏

          評論

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

          12  回復  更多評論   

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

          432432  回復  更多評論   


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


          網站導航:
           
          主站蜘蛛池模板: 石楼县| 喜德县| 临泉县| 铜川市| 玉田县| 西安市| 桐城市| 洞头县| 五寨县| 鄱阳县| 梨树县| 通海县| 酒泉市| 吉木乃县| 神池县| 兴国县| 财经| 肇州县| 江门市| 濉溪县| 筠连县| 财经| 延吉市| 长汀县| 新乡市| 安岳县| 富民县| 东安县| 同德县| 措勤县| 勐海县| 赫章县| 铜鼓县| 岢岚县| 沁源县| 青海省| 永泰县| 达孜县| 福清市| 彩票| 马鞍山市|