javascript验证完全方法具体实现

 更新时间:2013年11月18日 15:38:12   投稿:shangke  
下面这段代码完全实现了判断是否合格.传入号码就行了,包括了算法,下面的是用Ext实现的,但是基于javascript的语法居多,基本都可以用

复制代码 代码如下:

var certCardValid = function(id){
        var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2];
        var wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
        var Checker = [1,9,8,7,6,5,4,3,2,1,1];
        var msg = "";
        if(id.length != 15 && id.length != 18) {
            Ext.MessageBox.alert("信息提示","号共有15位或18位。");
            return false;
        }
        
        var ai = id.length == 18 ?  id.substring(0,17) : id.slice(0,6) + "19" + id.slice(6,16);
 
 
        if (!/^/d+$/.test(ai)) {
            Ext.MessageBox.alert("信息提示","除最后一位外,必须为数字。");
            return false;
        } 
 
 
        var yyyy = ai.slice(6,10);
        var mm = ai.slice(10,12)-1; 
        var dd = ai.slice(12,14);
        var d = new Date(yyyy,mm,dd);
        var now = new Date();
        var year = d.getFullYear();
        var mon = d.getMonth(); 
        var day = d.getDate();
 
 
        if (year != yyyy || mon != mm || day != dd) {
            Ext.MessageBox.alert("信息提示","无效。");
            return false;
        }
 
 
        for(var i = 0,ret = 0; i < 17; i++){
            ret += ai.charAt(i) * wi[i];
        }
        
        ai += arrVerifyCode[ret %= 11];
        ai = ai.toUpperCase();
 
 
        if(id.length == 18 && id != ai){
            Ext.MessageBox.alert("信息提示","无效。");
            return false;
        }
        return true;
    };

相关文章

  • mapboxgl实现带箭头轨迹线的代码

    mapboxgl实现带箭头轨迹线的代码

    这篇文章主要介绍了mapboxgl实现带箭头轨迹线的代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • JavaScript面试Module Federation实现原理详解

    JavaScript面试Module Federation实现原理详解

    这篇文章主要为大家介绍了JavaScript面试Module Federation实现原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • JS及PHP代码编写八大排序算法

    JS及PHP代码编写八大排序算法

    这篇文章主要为大家详细介绍了JS及PHP代码编写八大排序算法的相关资料,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • 让IE8支持DOM 2(不用框架!)

    让IE8支持DOM 2(不用框架!)

    众所周知,IE8开放了对DOM原型的支持以及ECMA v5的两个新方法——Object.defineProperty和Object.getOwnPropertyDexcriptor(单词好长……),并且这两个新方法居然只能用于DOM。
    2009-12-12
  • iconfont的N种使用方法小结

    iconfont的N种使用方法小结

    使用iconfont字体图标可以随意改变大小,避免图片放大失真问题,但是值得注意,修改字体图标大小的时候使用font-size属性,并且颜色可随意更改,本文给大家介绍iconfont的N种使用方法,感兴趣的朋友一起看看吧
    2024-01-01
  • 微信小程序实现时间戳格式转换

    微信小程序实现时间戳格式转换

    这篇文章主要为大家详细介绍了微信小程序实现时间戳格式转换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • Bootstrap每天必学之标签页(Tab)插件

    Bootstrap每天必学之标签页(Tab)插件

    Bootstrap每天必学之标签页(Tab)插件,通过这个插件您可以把内容放置在标签页或者是胶囊式标签页甚至是下拉菜单标签页中,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • JS 去前后空格大全(IE9亲测)

    JS 去前后空格大全(IE9亲测)

    本文为大家详细介绍下JS去前后空格及所有空格,代码在IE9环境下测试,感兴趣的朋友可以参考下哈,希望对大家有所帮助
    2013-07-07
  • JS不间断向上滚动效果代码

    JS不间断向上滚动效果代码

    不间断向上滚动的效果,想必大家都有见到过吧,本文也为大家准备一个使用js实现的不间断向上滚动效果,感兴趣的朋友可以参考下
    2013-12-12
  • Javascript中的apply()方法浅析

    Javascript中的apply()方法浅析

    这篇文章主要介绍了Javascript中的apply()方法浅析,本文讲解了apply vs call、Javascript apply 方法等内容,需要的朋友可以参考下
    2015-03-03

最新评论