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


Posted in Javascript onNovember 18, 2013
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; 
    };
Javascript 相关文章推荐
JS删除字符串中重复字符方法
Mar 09 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
Nov 20 Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
js 颜色选择插件
Jan 23 Javascript
thinkjs之页面跳转同步异步操作
Feb 05 Javascript
最实用的JS数组函数整理
Dec 05 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
vue-content-loader内容加载器的使用方法
Aug 05 Javascript
Vue组件中的data必须是一个function的原因浅析
Sep 03 Javascript
vue 循环加载数据并获取第一条记录的方法
Sep 26 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
Sep 24 Javascript
Jquery通过Ajax访问XML数据的小例子
Nov 18 #Javascript
YUI模块开发原理详解
Nov 18 #Javascript
深入领悟JavaScript中的面向对象
Nov 18 #Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
Nov 18 #Javascript
ExtJS自定义主题(theme)样式详解
Nov 18 #Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
Nov 18 #Javascript
jquery cookie的用法总结
Nov 18 #Javascript
You might like
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
JavaScript中的类继承
2010/11/25 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
Python出现segfault错误解决方法
2016/04/16 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
Python 如何查找特定类型文件
2020/08/17 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
canvas线条的属性详解
2018/03/27 HTML / CSS
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
执行力心得体会
2013/12/31 职场文书
出纳工作岗位责任制
2014/02/02 职场文书
购房协议书
2014/04/11 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
python实现高效的遗传算法
2021/04/07 Python
Python破解极验滑动验证码详细步骤
2021/05/21 Python
如何利用React实现图片识别App
2022/02/18 Javascript
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android