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 相关文章推荐
javascript实现tabs选项卡切换效果(扩展版)
Mar 19 Javascript
JavaScript支持的最大递归调用次数分析
Jun 24 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
Mar 18 Javascript
js数组依据下标删除元素
Apr 14 Javascript
jQuery实现文本展开收缩特效
Jun 03 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
Sep 19 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
js实现本地图片文件拖拽效果
Jul 18 Javascript
Vue.js划分组件的方法
Oct 29 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
May 02 Javascript
浅谈ElementUI中switch回调函数change的参数问题
Aug 24 Javascript
Three.js实现雪糕地球的使用示例详解
Jul 07 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异常处理技术,顶级异常处理器
2012/06/13 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
php扩展开发入门demo示例
2019/09/23 PHP
新页面打开实际尺寸的图片
2006/08/25 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
python snownlp情感分析简易demo(分享)
2017/06/04 Python
python绘制多个曲线的折线图
2020/03/23 Python
详解Python绘图Turtle库
2019/10/12 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
2020/06/04 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
几个Linux面试题笔试题
2012/12/01 面试题
环境科学专业个人求职信
2013/09/26 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
失恋33天观后感
2015/06/11 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
企业法律事务工作总结
2015/08/11 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle