码迷,mamicode.com
首页 > 移动开发 > 详细

手机验证 和身份证验证

时间:2018-06-27 18:08:01      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:submit   return   ber   length   messages   substring   new   hand   validator   

 $("#memberLevelForm").validate({
                rules: {                 
                   "phone":{
                       required : true,    
                          
                       isMobile : true  
                        
                   }                
                },
                submitHandler: function() {},
                    
                messages: {                                     
                   "phone":{
                        required :"请输入手机号!",
                        
                        isMoblie : true
                   }
                }
            });                  
          
       
          }); 
        
        //手机号码验证    
        jQuery.validator.addMethod("isMobile", function(value, element) {    
         var length = value.length;    
         var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;    
         return this.optional(element) || (length == 11 && mobile.test(value));    
        }, "请正确填写手机号码");
        
        // 身份证号码验证  
        jQuery.validator.addMethod("isIdCardNo", function(value, element) {  
            return this.optional(element) || isIdCardNo(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 andset 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;
        }
        function isDate6(sDate) {
                if(!/^[0-9]{6}$/.test(sDate)) {
                   return false;
                }
                var year,month, day;
                year =sDate.substring(0, 4);
                month =sDate.substring(4, 6);
                if (year< 1700 || year > 2500) returnfalse
                if (month< 1 || month > 12) return false
                return true
            }


            function isDate8(sDate) {
                if(!/^[0-9]{8}$/.test(sDate)) {
                   return false;
                }
                var year,month, day;
                year =sDate.substring(0, 4);
                month =sDate.substring(4, 6);
                day =sDate.substring(6, 8);
                var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,31]
                if (year< 1700 || year > 2500) return false
                if (((year %4 == 0) && (year % 100 != 0)) ||(year % 400 == 0)) iaMonthDays[1] = 29;
                if (month< 1 || month > 12) return false
                if (day< 1 || day > iaMonthDays[month - 1])return false
                return true
            }
        

 

手机验证 和身份证验证

标签:submit   return   ber   length   messages   substring   new   hand   validator   

原文地址:https://www.cnblogs.com/lxk233/p/9235240.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!