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 相关文章推荐
js判断鼠标同时离开两个div的思路及代码
May 31 Javascript
Kindeditor在线文本编辑器如何过滤HTML
Apr 14 Javascript
JavaScript中闭包的写法和作用详解
Jun 29 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
Sep 08 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
Nov 30 Javascript
websocket+node.js实现实时聊天系统问题咨询
May 17 Javascript
php 修改密码实现代码
May 24 Javascript
解决Extjs下拉框不显示的问题
Jun 21 Javascript
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
highcharts 在angular中的使用示例代码
Sep 20 Javascript
vue实现word,pdf文件的导出功能
Jul 31 Javascript
Postman参数化实现过程及原理解析
Aug 13 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实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
js实现图片拖动改变顺序附图
2014/05/13 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
numpy 声明空数组详解
2019/12/05 Python
Python文件操作方法详解
2020/02/09 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
Django在Model保存前记录日志实例
2020/05/14 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
教师个人鉴定材料
2014/02/08 职场文书
贷款承诺书范文
2014/05/19 职场文书
节约粮食标语
2014/06/18 职场文书
2015大学生实训报告
2014/11/05 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
个人委托书范文
2015/01/28 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
教师节老师寄语
2015/05/28 职场文书