javascript验证身份证完全方法具体实现


复制代码 代码如下:

var certCardValid = function(id){
        var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2];
        var wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
        var Checker = [1,9,8,7,6,5,4,3,2,1,1];
        var msg = "";
        if(id.length != 15 && id.length != 18) {
            Ext.MessageBox.alert("信息提示","身份证号共有15位或18位。");
            return false;
        }

        var ai = id.length == 18 ?  id.substring(0,17) : id.slice(0,6) + "19" + id.slice(6,16);

 
        if (!/^/d+$/.test(ai)) {
            Ext.MessageBox.alert("信息提示","身份证除最后一位外,必须为数字。");
            return false;
        } 

 
        var yyyy = ai.slice(6,10);
        var mm = ai.slice(10,12)-1; 
        var dd = ai.slice(12,14);
        var d = new Date(yyyy,mm,dd);
        var now = new Date();
        var year = d.getFullYear();
        var mon = d.getMonth(); 
        var day = d.getDate();

 
        if (year != yyyy || mon != mm || day != dd) {
            Ext.MessageBox.alert("信息提示","身份证无效。");
            return false;
        }

 
        for(var i = 0,ret = 0; i < 17; i++){
            ret += ai.charAt(i) * wi[i];
        }

        ai += arrVerifyCode[ret %= 11];
        ai = ai.toUpperCase();

 
        if(id.length == 18 && id != ai){
            Ext.MessageBox.alert("信息提示","身份证无效。");
            return false;
        }
        return true;
    };



相关阅读:
解决javaWEB中前后台中文乱码问题的3种方法
一波CSS的Checkbox复选框样式代码分享
浅谈javascript中this在事件中的应用
jquery与prototype框架的详细对比
.net中下载文件的实例代码
iOS开发使用XML解析网络数据
360卫士升级win10系统遇到c盘剩余空间不足该怎么办?
win10输入法设置的位置在哪里?
jquery修改属性值实例代码(设置属性值)
平板怎么升级win10?win8.1升级win10教程
jquery实现非叠加式的搜索框提示效果
基于zepto.js简单实现上传图片
Win10 Mobile RedStone预览版14267已知问题与修复内容汇总
C#创建数据库及导入sql脚本的方法
快速导航

Copyright © 2016 phpStudy |