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 操作JavaScript对象和集合的函数
Feb 07 Javascript
Javascript实现的鼠标经过时播放声音
May 18 Javascript
始终在屏幕中间显示Div的代码(css+js)
Mar 10 Javascript
js 页面关闭前的出现提示的实现代码
May 25 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
Apr 01 Javascript
用于deeplink的js方法(判断手机是否安装app)
Apr 02 Javascript
JavaScript动态设置div的样式的方法
Dec 26 Javascript
jquery ajax局部加载方法详解(实现代码)
May 12 Javascript
vue.js做一个简单的编辑菜谱功能
May 08 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
May 07 Javascript
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
浅析vue中的nextTick
Dec 28 Vue.js
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/02/17 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
简述vue中的config配置
2018/01/23 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
Python中使用HTMLParser解析html实例
2015/02/08 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
python要安装在哪个盘
2020/06/15 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
python爬取音频下载的示例代码
2020/10/19 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
半年思想汇报
2013/12/30 职场文书
房地产项目策划书
2014/02/05 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
学习雷锋倡议书
2014/04/15 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL