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 Autocomplete自动完成插件
Jul 17 Javascript
JS面向对象编程之对象使用分析
Aug 19 Javascript
两个Javascript小tip资料
Nov 23 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
Apr 02 Javascript
jstl中判断list中是否包含某个值的简单方法
Oct 14 Javascript
js获取时间函数及扩展函数的方法
Oct 30 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
Nov 25 Javascript
巧用Javascript的逻辑运算符
Dec 02 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
Dec 13 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
May 16 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
Nov 20 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绘制一个扇形的方法
2015/01/24 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
显示、隐藏密码
2006/07/01 Javascript
javascript import css实例代码
2008/07/18 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
Python基于递归实现电话号码映射功能示例
2018/04/13 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
python画双y轴图像的示例代码
2019/07/07 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
中国梦我的梦演讲稿
2014/04/23 职场文书
如何通过一篇文章了解Python中的生成器
2022/04/02 Python