从盛大通行证上摘下来的身份证验证js代码


Posted in Javascript onJanuary 11, 2011
<script language="javascript" type="text/javascript"> 
function CheckIdCardField(v_card) { 
var reg = /^\d{15}(\d{2}[0-9X])?$/i; 
if (!reg.test(v_card)) { 
return false; 
} 
if (v_card.length == 15) { 
var n = new Date(); 
var y = n.getFullYear(); 
if (parseInt("19" + v_card.substr(6, 2)) < 1900 || parseInt("19" + v_card.substr(6, 2)) > y) { 
return false; 
} 
var birth = "19" + v_card.substr(6, 2) + "-" + v_card.substr(8, 2) + "-" + v_card.substr(10, 2); 
if (!isDate(birth)) { 
return false; 
} 
} 
if (v_card.length == 18) { 
var n = new Date(); 
var y = n.getFullYear(); 
if (parseInt(v_card.substr(6, 4)) < 1900 || parseInt(v_card.substr(6, 4)) > y) { 
return false; 
} 
var birth = v_card.substr(6, 4) + "-" + v_card.substr(10, 2) + "-" + v_card.substr(12, 2); 
if (!isDate(birth)) { 
return false; 
} 
iW = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1); 
iSum = 0; 
for (i = 0; i < 17; i++) { 
iC = v_card.charAt(i); 
iVal = parseInt(iC); 
iSum += iVal * iW[i]; 
} 
iJYM = iSum % 11; 
if (iJYM == 0) sJYM = "1"; 
else if (iJYM == 1) sJYM = "0"; 
else if (iJYM == 2) sJYM = "x"; 
else if (iJYM == 3) sJYM = "9"; 
else if (iJYM == 4) sJYM = "8"; 
else if (iJYM == 5) sJYM = "7"; 
else if (iJYM == 6) sJYM = "6"; 
else if (iJYM == 7) sJYM = "5"; 
else if (iJYM == 8) sJYM = "4"; 
else if (iJYM == 9) sJYM = "3"; 
else if (iJYM == 10) sJYM = "2"; 
var cCheck = v_card.charAt(17).toLowerCase(); 
if (cCheck != sJYM) { 
return false; 
} 
} 
return true; 
} 
</script>
Javascript 相关文章推荐
List the Codec Files on a Computer
Jun 11 Javascript
javascript中最常用的继承模式 组合继承
Aug 12 Javascript
jQuery中live方法的重复绑定说明
Oct 21 Javascript
Jquery焦点与失去焦点示例应用
Jun 10 Javascript
jQuery Ajax使用实例
Apr 16 Javascript
分享9点个人认为比较重要的javascript 编程技巧
Apr 27 Javascript
BootStrap3学习笔记(一)之网格系统
May 20 Javascript
值得分享的Bootstrap Table使用教程
Nov 23 Javascript
基于bootstrap实现多个下拉框同时搜索功能
Jul 19 Javascript
JavaScript数组排序reverse()和sort()方法详解
Dec 24 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
Apr 22 Javascript
前端vue+express实现文件的上传下载示例
Feb 18 Vue.js
javascript 设为首页与加入收藏兼容多浏览器代码
Jan 11 #Javascript
javascript获取当前日期时间及其它操作函数
Jan 11 #Javascript
JavaScript中URL编码函数代码
Jan 11 #Javascript
Jquery跨域获得Json时invalid label错误的解决办法
Jan 11 #Javascript
JS无限树状列表实现代码
Jan 11 #Javascript
jQuery UI的Dialog无法提交问题的解决方法
Jan 11 #Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
Jan 11 #Javascript
You might like
PHP文件注释标记及规范小结
2012/04/01 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
关于PHP文件的自动运行方法分析
2016/05/13 PHP
PHP单链表的实现代码
2016/07/05 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
PHP进程通信基础之信号
2017/02/19 PHP
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
js封装可使用的构造函数继承用法分析
2015/01/28 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
Python循环语句之break与continue的用法
2015/10/14 Python
python五子棋游戏的设计与实现
2019/06/18 Python
python算法题 链表反转详解
2019/07/02 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
大学生入党思想汇报
2014/01/01 职场文书
什么是就业协议书
2014/04/17 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
纪检监察立案决定书
2015/06/24 职场文书
尊师重教主题班会
2015/08/14 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书