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渐显(fadeIn)渐隐(fadeOut)类
Jun 19 Javascript
ExtJS4 表格的嵌套 rowExpander应用
May 02 Javascript
浅谈重写window对象的方法
Dec 29 Javascript
JavaScript面向对象程序设计教程
Mar 29 Javascript
浅谈Javascript中的函数、this以及原型
Oct 09 Javascript
探究react-native 源码的图片缓存问题
Aug 24 Javascript
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
JS排序算法之冒泡排序,选择排序与插入排序实例分析
Dec 13 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
Sep 04 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
Sep 30 Javascript
javascript移动端 电子书 翻页效果实现代码
Sep 07 Javascript
JS实现网页端猜数字小游戏
Mar 06 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/07/29 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
在Vue中使用HOC模式的实现
2020/08/23 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
python3安装speech语音模块的方法
2018/12/24 Python
Python实现FTP文件传输的实例
2019/07/07 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
python3 求约数的实例
2019/12/05 Python
np.dot()函数的用法详解
2020/01/17 Python
Django封装交互接口代码
2020/07/12 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
中学教师实习自我鉴定
2013/09/28 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
花店创业计划书范文
2014/02/07 职场文书
服务承诺书格式
2014/05/21 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
公司2014年度工作总结
2014/12/10 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书