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 相关文章推荐
让iframe框架网页在任何浏览器下自动伸缩
Aug 18 Javascript
新老版本juqery获取radio对象的方法
Mar 01 Javascript
jQuery表格行换色的三种实现方法
Jun 27 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
Jun 17 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
Feb 07 Javascript
jquery 取子节点及当前节点属性值的方法
Aug 24 Javascript
javascript实现带节日和农历的日历特效
Feb 01 Javascript
JavaScript获取各大浏览器信息图示
Nov 20 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
May 21 Javascript
jQuery密码强度验证控件使用详解
Jan 05 Javascript
js删除数组中的元素delete和splice的区别详解
Feb 03 Javascript
原生JavaScript实现todolist功能
Mar 02 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
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
浅析php原型模式
2014/11/25 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
javascript弹出页面回传值的方法
2015/01/28 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
window.onload使用指南
2015/09/13 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
nodeJS实现简单网页爬虫功能的实例(分享)
2017/06/08 NodeJs
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
跟老齐学Python之有点简约的元组
2014/09/24 Python
Python中特殊函数集锦
2015/07/27 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
postman和python mock测试过程图解
2020/02/22 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
CSS3制作酷炫的条纹背景
2017/11/09 HTML / CSS
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
七一党建活动方案
2014/01/28 职场文书
团队拓展活动方案
2014/08/28 职场文书