JS支持带x身份证号码验证函数


Posted in Javascript onAugust 10, 2008

<script type="text/javascript">
alert(isIdCardNo("440781197007220512"));
//--身份证号码验证-支持新的带x身份证
function isIdCardNo(num) 
{
    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
    var error;
    var varArray = new Array();
    var intValue;
    var lngProduct = 0;
    var intCheckDigit;
    var intStrLen = num.length;
    var idNumber = num;    
    // initialize
    if ((intStrLen != 15) && (intStrLen != 18)) {
        //error = "输入身份证号码长度不对!";
        //alert(error);
        //frmAddUser.txtIDCard.focus();
        return false;
    }    
    // check and set value
    for(i=0;i<intStrLen;i++) {
        varArray[i] = idNumber.charAt(i);
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
            //error = "错误的身份证号码!.";
            //alert(error);
            //frmAddUser.txtIDCard.focus();
            return false;
        } else if (i < 17) {
            varArray[i] = varArray[i]*factorArr[i];
        }
    }
    if (intStrLen == 18) {
        //check date
        var date8 = idNumber.substring(6,14);
        if (checkDate(date8) == false) {
            //error = "身份证中日期信息不正确!.";
            //alert(error);
            return false;
        }        
        // calculate the sum of the products
        for(i=0;i<17;i++) {
            lngProduct = lngProduct + varArray[i];
        }        
        // calculate the check digit
        intCheckDigit = 12 - lngProduct % 11;
        switch (intCheckDigit) {
            case 10:
                intCheckDigit = 'X';
                break;
            case 11:
                intCheckDigit = 0;
                break;
            case 12:
                intCheckDigit = 1;
                break;
        }        
        // check last digit
        if (varArray[17].toUpperCase() != intCheckDigit) {
            //error = "身份证效验位错误!...正确为: " + intCheckDigit + ".";
            //alert(error);
            return false;
        }
    } 
    else{        //length is 15
        //check date
        var date6 = idNumber.substring(6,12);
        if (checkDate(date6) == false) {
            //alert("身份证日期信息有误!.");
            return false;
        }
    }
    //alert ("Correct.");
    return true;
}

function checkDate(date)
{
    return true;
}
</script>

Javascript 相关文章推荐
Javascript学习笔记5 类和对象
Jan 11 Javascript
简单的jquery拖拽排序效果实现代码
Sep 20 Javascript
js遍历、动态的添加数据的小例子
Jun 22 Javascript
jquery实现列表上下移动功能
Feb 25 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
Jan 20 Javascript
Angular2使用Augury来调试Angular2程序
May 21 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 Javascript
JavaScript常用数学函数用法示例
May 14 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
使用vue-router切换页面时实现设置过渡动画
Oct 31 Javascript
详解为什么Vue中不要用index作为key(diff算法)
Apr 04 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
Dec 14 Vue.js
js获取div高度的代码
Aug 09 #Javascript
js可突破windows弹退效果代码
Aug 09 #Javascript
ext form 表单提交数据的方法小结
Aug 08 #Javascript
ext实现完整的登录代码
Aug 08 #Javascript
Javascript与flash交互通信基础教程
Aug 07 #Javascript
二级域名或跨域共享Cookies的实现方法
Aug 07 #Javascript
Div Select挡住的解决办法
Aug 07 #Javascript
You might like
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
2020/11/11 Javascript
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
python命令行工具Click快速掌握
2019/07/04 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
Python如何使用paramiko模块连接linux
2020/03/18 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
法国太阳镜店:Sunglasses Shop
2016/08/27 全球购物
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
费用会计岗位职责
2014/01/01 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
先进人物事迹材料
2014/12/29 职场文书
2015年教师节慰问信
2015/03/23 职场文书
社区节水倡议书
2015/04/29 职场文书
文艺晚会开场白
2015/05/29 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
我的收音机情缘
2022/04/05 无线电
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers