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 相关文章推荐
悄悄用脚本检查你访问过哪些网站的代码
Dec 04 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
Dec 04 Javascript
自编jQuery插件实现模拟alert和confirm
Sep 01 Javascript
JavaScript的9种继承实现方式归纳
May 18 Javascript
Vue.js手风琴菜单组件开发实例
May 16 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
Aug 16 Javascript
angularJs中$scope数据序列化的实例
Sep 30 Javascript
关于node-bindings无法在Electron中使用的解决办法
Dec 18 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
Sep 27 Javascript
JavaScript中的相等操作符使用详解
Dec 21 Javascript
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 30 Javascript
canvas实现贪食蛇的实践
Feb 15 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的输入输出流
2007/02/14 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
Joomla开启SEF的方法
2016/05/04 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
2020/05/06 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
Django验证码的生成与使用示例
2017/05/20 Python
Python与R语言的简要对比
2017/11/14 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
介绍一下Ruby的特点
2013/01/20 面试题
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
机电工程专业应届生求职信
2013/10/03 职场文书
外贸业务员岗位职责
2013/11/24 职场文书
kfc实习自我鉴定
2013/12/14 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
工人先锋号申报材料
2014/12/29 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python