从盛大通行证上摘下来的身份证验证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 相关文章推荐
Extjs Ajax 乱码问题解决方案
Apr 15 Javascript
jQuery 事件队列调整方法
Sep 18 Javascript
仅用[]()+!等符号就足以实现几乎任意Javascript代码
Mar 01 Javascript
HTML中的setCapture和releaseCapture使用介绍
Mar 21 Javascript
基于JQuery的列表拖动排序实现代码
Oct 01 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
Jul 18 Javascript
解释&amp;&amp;和||在javascript中的另类用法
Jul 28 Javascript
轻松掌握JavaScript装饰者模式
Aug 27 Javascript
jquery 键盘事件的使用方法详解
Sep 13 jQuery
vue+elementUI组件table实现前端分页功能
Nov 15 Javascript
Vue filter 过滤器、以及在table中的使用介绍
Sep 07 Javascript
vue+axios 拦截器实现统一token的案例
Sep 11 Javascript
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
redis 队列操作的例子(php)
2012/04/12 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
jQuery学习笔记之回调函数
2016/08/15 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
前端天气插件tpwidget使用方法详解
2019/06/24 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
python调用cmd命令行制作刷博器
2014/01/13 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
ASP.NET Core中的配置详解
2021/02/05 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
酒店秘书求职信范文
2014/02/17 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
节电标语大全
2014/06/23 职场文书
村官个人总结范文
2015/03/03 职场文书
外出考察学习心得体会
2016/01/18 职场文书