关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

Validform身份验证方法

发布时间:2019-11-08 08:59:01
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Demo - Validform - 一行代码搞定整站的表单验证! &copy;瑞金佬的前端路</title>
<link rel="stylesheet" href="http://validform.rjboy.cn/wp-content/themes/validform/style.css" type="text/css" media="all" />
<link href="css/demo.css" type="text/css" rel="stylesheet" />
</head>
<body>  
<div>
    <div>
        <h1><a href="../">Validform</a></h1>
        <ul>
            <li><a href="../">关于Validform</a></li>
            <li><a href="../demo.html">Demo</a></li>
            <li><a href="../document.html">文档</a></li>
            <li><a href="../download.html">下载</a></li>
            <li><a href="../help.html">帮助</a></li>
            <li><a href="/?p=1">网友讨论</a></li>
        </ul>
    </div>
</div>
<div>
    <div>
        <p><a href="../demo.html" class="blue ml10 fz12">返回示例首页&raquo;</a></p>
        
        <h2>通过自定义datatype对身份证号码进行严格验证</h2>
        
        <form action="ajax_post.php">
            <table width="100%" style="table-layout:fixed;">
                <tr>
                    <td style="width:10px;">*</td>
                    <td style="width:70px;">身份证:</td>
                    <td style="width:205px;"><input type="text" value="" name="name" datatype="idcard" nullmsg="请填写身份证号码!" errormsg="您填写的身份证号码不对!" /></td>
                    <td><div>这里会对身份证号码严格验证,请输入真实身份证号码</div></td>
                </tr>
                <tr>
                    <td></td>
                    <td></td>
                    <td colspan="2" style="padding:10px 0 18px 0;">
                        <input type="submit" value="提 交" /> <input type="reset" value="重 置" />
                    </td>
                </tr>
            </table>
        </form>
        
        <h2>说明:</h2>
        <div>
            <p>该方法由佚名网友提供。</p>
        </div>
         
    </div>
</div>
<div>
    <div>
        <p>Copyright &copy; <a href="http://www.eloocor.com" target="_blank">易罗客</a></p>
        <p><a href="http://www.rjboy.cn" target="_blank">瑞金佬的前端路</a><b> | </b><a href="http://validform.rjboy.cn">Validform</a><b> | </b><a href="http://www.rjboy.cn/?p=789" target="_blank">hScrollpane</a><b> | </b><a href="http://www.rjboy.cn/?p=708" target="_blank">Xslider</a></p>
    </div>
</div>
<script type="text/javascript" src="http://validform.rjboy.cn/wp-content/themes/validform/js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="http://validform.rjboy.cn/Validform/v5.3.2/Validform_v5.3.2_min.js"></script>
<script type="text/javascript">
$(function(){
    //$(".registerform").Validform();  //就这一行代码!;
        
    /**********************
    传入自定义datatype类型【方式一】;
    $.extend($.Datatype,{
        "z2-4" : /^[\u4E00-\u9FA5\uf900-\ufa2d]{2,4}$/
    });
    **********************/
    
    $(".registerform").Validform({
        tiptype:2,
        datatype:{//传入自定义datatype类型【方式二】;
            "idcard":function(gets,obj,curform,datatype){
                //该方法由佚名网友提供;
            
                var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];// 加权因子;
                var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份证验证位值,10代表X;
            
                if (gets.length == 15) {   
                    return isValidityBrithBy15IdCard(gets);   
                }else if (gets.length == 18){   
                    var a_idCard = gets.split("");// 得到身份证数组   
                    if (isValidityBrithBy18IdCard(gets)&&isTrueValidateCodeBy18IdCard(a_idCard)) {   
                        return true;   
                    }   
                    return false;
                }
                return false;
                
                function isTrueValidateCodeBy18IdCard(a_idCard) {   
                    var sum = 0; // 声明加权求和变量   
                    if (a_idCard[17].toLowerCase() == 'x') {   
                        a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续操作   
                    }   
                    for ( var i = 0; i < 17; i++) {   
                        sum += Wi[i] * a_idCard[i];// 加权求和   
                    }   
                    valCodePosition = sum % 11;// 得到验证码所位置   
                    if (a_idCard[17] == ValideCode[valCodePosition]) {   
                        return true;   
                    }
                    return false;   
                }
                
                function isValidityBrithBy18IdCard(idCard18){   
                    var year = idCard18.substring(6,10);   
                    var month = idCard18.substring(10,12);   
                    var day = idCard18.substring(12,14);   
                    var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));   
                    // 这里用getFullYear()获取年份,避免千年虫问题   
                    if(temp_date.getFullYear()!=parseFloat(year) || temp_date.getMonth()!=parseFloat(month)-1 || temp_date.getDate()!=parseFloat(day)){   
                        return false;   
                    }
                    return true;   
                }
                
                function isValidityBrithBy15IdCard(idCard15){   
                    var year =  idCard15.substring(6,8);   
                    var month = idCard15.substring(8,10);   
                    var day = idCard15.substring(10,12);
                    var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));   
                    // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法   
                    if(temp_date.getYear()!=parseFloat(year) || temp_date.getMonth()!=parseFloat(month)-1 || temp_date.getDate()!=parseFloat(day)){   
                        return false;   
                    }
                    return true;
                }
                
            }
            
        }
    });
})
</script>
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-81001026-1', 'auto');
  ga('send', 'pageview');
</script>
</body>
</html>



/template/Home/Zkeys/PC/Static