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 变量作用域 代码分析
Jun 26 Javascript
面向对象的Javascript之三(封装和信息隐藏)
Jan 27 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
Dec 25 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
May 07 Javascript
JQuery性能优化的几点建议
May 14 Javascript
Javascript基础教程之比较操作符
Jan 18 Javascript
jqTransform美化表单
Oct 10 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
angular指令笔记ng-options的使用方法
Sep 18 Javascript
JavaScript实现五子棋游戏的方法详解
Jul 08 Javascript
JS实现简单的表格增删
Jan 16 Javascript
vue路由结构可设一层方便动态添加路由操作
Aug 31 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
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
php字符串操作常见问题小结
2016/10/11 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
Python列表生成器的循环技巧分享
2015/03/06 Python
Python实例一个类背后发生了什么
2016/02/09 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
python 实现逻辑回归
2020/12/30 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
天地会口号
2014/06/17 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
商品陈列协议书
2014/09/29 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
消防安全月活动总结
2015/05/08 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书
导游词幽默开场白
2019/06/26 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python