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 相关文章推荐
jQuery 源码分析笔记(7) Queue
Jun 19 Javascript
Javascript之this关键字深入解析
Nov 12 Javascript
JavaScript框架(iframe)操作总结
Apr 16 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
Nov 26 Javascript
javascript获取文档坐标和视口坐标
May 26 Javascript
Bootstrap基本组件学习笔记之进度条(15)
Dec 08 Javascript
vue数据双向绑定原理解析(get &amp; set)
Mar 08 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
Vue中render方法的使用详解
Jan 26 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 Javascript
微信小程序修改swiper默认指示器样式的实例代码
Jul 18 Javascript
Vue路由模块化配置的完整步骤
Aug 14 Javascript
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
解析php常用image图像函数集
2013/06/24 PHP
php教程之魔术方法的使用示例(php魔术函数)
2014/02/12 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
详解ES6中的Map与Set集合
2019/03/22 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
Django框架下在视图中使用模版的方法
2015/07/16 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
Django工程的分层结构详解
2019/07/18 Python
详解Python利用random生成一个列表内的随机数
2019/08/21 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
面向对象编程OOP的优点
2013/01/22 面试题
高二地理教学反思
2014/01/24 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
工程项目合作意向书
2015/05/08 职场文书
初中思想品德教学反思
2016/02/24 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书