【无标题】layer.open弹窗多个输入框及下拉框,js证件号判断

       layer.open({
        type: 1,
        title: '经济支持人信息',
        // skin: 'layui-layer-demo', //样式类名
        closeBtn: false,
        shift: 7,
        shadeClose: true,
        content: "<div style='width:350px;'><div style='width:320px;margin-left: 3%;' class='form-group has-feedback'><p>请输入经济支持人姓名</p><input id='brokerName' class='form-control' type='text' name='brokerName' value=''/></div>" +
            // "<div style='width:320px;margin-left: 3%;' class='form-group has-feedback'><p>请输入经济支持人证件类型</p><input id='brokerType' class='form-control' type='text' name='brokerType' value=''/></div>" +
            "<div style='width:320px;margin-left: 2%;'class='form-group has-feedback'><p>请输入经济支持人证件类型</p><select id='range'name='range' class='form-control' ></select></div>"+  "<div style='width:320px;margin-left: 3%;' class='form-group has-feedback'><p>请输入经济支持人证件号码</p><input id='brokerNo' class='form-control' type='text' name='brokerNo' value=''/></div>" +
            "<div style='width:320px;margin-left: 3%;' class='form-group has-feedback'><p>请输入经济支持人电话</p><input id='brokerTel' class='form-control' type='text' name='brokerTel' value=''/></div>" ,
        btn: ['确定', '关闭'],  // "<div style='width:320px;margin-left: 3%;' class='form-group has-feedback'>
        yes: function (index, layero) {
            if ($('#brokerName').val() === "") {
                layer.tips("请填写经济支持人姓名", $('#brokerName'), {
                    tips: [1, '#1E9FFF'] //还可配置颜色
                });
                return;
            }
            if ($('#range').val() === "") {
                layer.tips("请填写经济支持人证件类型", $('#range'), {
                    tips: [1, '#1E9FFF'] //还可配置颜色
                });
                return;
            }
            if ($('#brokerNo').val() === "") {
                layer.tips("请填写经济支持人证件号码", $('#brokerNo'), {
                    tips: [1, '#1E9FFF'] //还可配置颜色
                });
                return;
            }
            if ($('#brokerTel').val() === "") {
                layer.tips("请填写经济支持人电话", $('#brokerTel'), {
                    tips: [1, '#1E9FFF'] //还可配置颜色
                });
                return;
            }
            var regTest = /^13[0-9]{1}[0-9]{8}$|15[^4]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}$|17[0-8]{1}[0-9]{8}$|14[5-9]{1}[0-9]{8}$|16[6]{1}[0-9]{8}$|19[8-9]{1}[0-9]{8}$/;
            if (!regTest.test($('#brokerTel').val())) {
                layer.tips("请输入正确的手机号", $('#brokerTel'), {
                    tips: [1, '#1E9FFF'] //还可配置颜色
                });
                return ;
            }
            if (!isIdCard($('#brokerNo').val())) {
                layer.tips("请输入正确的证件号码格式", $('#brokerNo'), {
                    tips: [1, '#1E9FFF'] //还可配置颜色
                });
                return;
            }

        
            layer.close(index);
            Toast("success","输入成功");
            return;
        },
        btn2: function (index, layero) {
            layer.close(index);
        }
    });

2.js中 证件号码的校验

/**

  • 身份证15位编码规则:dddddd yymmdd xx p dddddd:6位地区编码 yymmdd: 出生年(两位年)月日,如:910215 xx:

  • 顺序编码,系统产生,无法确定 p: 性别,奇数为男,偶数为女

  • 身份证18位编码规则:dddddd yyyymmdd xxx y dddddd:6位地区编码 yyyymmdd:

  • 出生年(四位年)月日,如:19910215 xxx:顺序编码,系统产生,无法确定,奇数为男,偶数为女 y: 校验码,该位数值可通过前17位计算获得

  • 前17位号码加权因子为 Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ] 验证位

  • Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ] 如果验证码恰好是10,为了保证身份证是十八位,那么第十八位将用X来代替

  • 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 ) i为身份证号码1…17 位; Y_P为校验码Y所在校验码数组位置
    */

         function isIdCard(idCard) {
           // 15位和18位身份证号码的正则表达式
         var regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|             (1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
    
      // 如果通过该验证,说明身份证格式正确,但准确性还需计算
      if (regIdCard.test(idCard)) {
       if (idCard.length == 18) {
           var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,
             5, 8, 4, 2); // 将前17位加权因子保存在数组里
         var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2); // 这是除以11后,可能产生的11位余数、     验证码,也保存成数组
         var idCardWiSum = 0; // 用来保存前17位各自乖以加权因子后的总和
         for (var i = 0; i < 17; i++) {
             idCardWiSum += idCard.substring(i, i + 1) * idCardWi[i];
         }
    
     	 var idCardMod = idCardWiSum % 11;// 计算出校验码所在数组的位置
         var idCardLast = idCard.substring(17);// 得到最后一位身份证号码
    
         // 如果等于2,则说明校验码是10,身份证号码最后一位应该是X
         if (idCardMod == 2) {
             if (idCardLast == "X" || idCardLast == "x") {
                 //alert("恭喜通过验证啦!");
                 return true;
             } else {
                 //alert("身份证号码错误!");
                 return false;
             }
         } else {
             // 用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
             if (idCardLast == idCardY[idCardMod]) {
                 //alert("恭喜通过验证啦!");
                 return true;
             } else {
                 //alert("身份证号码错误!");
                 return false;
             }
         }
     }else{
         return true;
     }  } else {
     //alert("身份证格式不正确!");
     return false;}}
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值