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 相关文章推荐
一个不错的用JavaScript实现的UBB编码函数
Mar 09 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
Oct 20 Javascript
textarea中的手动换行处理的jquery代码
Feb 26 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
Feb 06 Javascript
jQuery实现点击小图显示大图代码分享
Aug 25 Javascript
jQuery 局部div刷新和全局刷新方法总结
Oct 05 Javascript
详解用vue.js和laravel实现微信支付
Jun 23 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
Mar 12 Javascript
微信小程序开发之转发分享功能
Oct 22 Javascript
浅谈vuex中store的命名空间
Nov 08 Javascript
vue transition 在子组件中失效的解决
Nov 12 Javascript
基于jquery实现彩色投票进度条代码解析
Aug 26 jQuery
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
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
hessian 在PHP中的使用介绍
2010/12/13 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
jQuery 性能优化指南(2)
2009/05/21 Javascript
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
2013/08/09 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
JavaScript禁止微信浏览器下拉回弹效果
2017/05/16 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
Python中的tuple元组详细介绍
2015/02/02 Python
Python实现统计英文单词个数及字符串分割代码
2015/05/28 Python
使用TensorFlow实现SVM
2018/09/06 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
解决python运行效率不高的问题
2020/07/20 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
大学生社团活动总结
2014/04/26 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
销售会议开幕词
2015/01/28 职场文书
2016国培研修心得体会
2016/01/08 职场文书
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技