Energy of Love  
          日歷
          <2011年8月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910
          統計
          • 隨筆 - 70
          • 文章 - 0
          • 評論 - 80
          • 引用 - 0

          導航

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

          idCard.js部分*******************************************************


          //****************************************************************************

          // 構造函數,變量為15位或者18位的身份證號碼
          function clsIDCard(CardNo) {
            this.Valid=false;
            this.ID15='';
            this.ID18='';
            this.Local='';
            if(CardNo!=null)this.SetCardNo(CardNo);
          }

          // 設置身份證號碼,15位或者18位
          clsIDCard.prototype.SetCardNo = function(CardNo) {
            this.ID15='';
            this.ID18='';
            this.Local='';
            CardNo=CardNo.replace(" ","");
            var strCardNo;
            if(CardNo.length==18) {
              pattern= /^\d{17}(\d|x|X)$/;
              if (pattern.exec(CardNo)==null)return;
              strCardNo=CardNo.toUpperCase();
            } else {
              pattern= /^\d{15}$/;
              if (pattern.exec(CardNo)==null)return;
              strCardNo=CardNo.substr(0,6)+'19'+CardNo.substr(6,9)
              strCardNo+=this.GetVCode(strCardNo);
            }
            this.Valid=this.CheckValid(strCardNo);
          }

          // 校驗身份證有效性
          clsIDCard.prototype.IsValid = function() {
            return this.Valid;
          }

          // 返回生日字符串,格式如下,1981-10-10
          clsIDCard.prototype.GetBirthDate = function() {
            var BirthDate='';
            if(this.Valid)BirthDate=this.GetBirthYear()+'-'+this.GetBirthMonth()+'-'+this.GetBirthDay();
            return BirthDate;
          }

          // 返回生日中的年,格式如下,1981
          clsIDCard.prototype.GetBirthYear = function() {
            var BirthYear='';
            if(this.Valid)BirthYear=this.ID18.substr(6,4);
            return BirthYear;
          }

          // 返回生日中的月,格式如下,10
          clsIDCard.prototype.GetBirthMonth = function() {
            var BirthMonth='';
            if(this.Valid)BirthMonth=this.ID18.substr(10,2);
            if(BirthMonth.charAt(0)=='0')BirthMonth=BirthMonth.charAt(1);
            return BirthMonth;
          }

          // 返回生日中的日,格式如下,10
          clsIDCard.prototype.GetBirthDay = function() {
            var BirthDay='';
            if(this.Valid)BirthDay=this.ID18.substr(12,2);
            return BirthDay;
          }

          // 返回性別,1:男,0:女
          clsIDCard.prototype.GetSex = function() {
            var Sex='';
            if(this.Valid)Sex=this.ID18.charAt(16)%2;
            return Sex;
          }

          // 返回15位身份證號碼
          clsIDCard.prototype.Get15 = function() {
            var ID15='';
            if(this.Valid)ID15=this.ID15;
            return ID15;
          }

          // 返回18位身份證號碼
          clsIDCard.prototype.Get18 = function() {
            var ID18='';
            if(this.Valid)ID18=this.ID18;
            return ID18;
          }

          // 返回所在省,例如:上海市、浙江省
          clsIDCard.prototype.GetLocal = function() {
            var Local='';
            if(this.Valid)Local=this.Local;
            return Local;
          }

          clsIDCard.prototype.GetVCode = function(CardNo17) {
            var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
            var Ai = new Array('1','0','X','9','8','7','6','5','4','3','2');
            var cardNoSum = 0;
            for (var i=0; i<CardNo17.length; i++)cardNoSum+=CardNo17.charAt(i)*Wi[i];
            var seq = cardNoSum%11;
            return Ai[seq];
          }

          clsIDCard.prototype.CheckValid = function(CardNo18) {
            if(this.GetVCode(CardNo18.substr(0,17))!=CardNo18.charAt(17))return false;
            if(!this.IsDate(CardNo18.substr(6,8)))return false;
            var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江 ",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北 ",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"云南",54:"西藏 ",61:"陜西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外"};
            if(aCity[parseInt(CardNo18.substr(0,2))]==null)return false;
            this.ID18=CardNo18;
            this.ID15=CardNo18.substr(0,6)+CardNo18.substr(8,9);
            this.Local=aCity[parseInt(CardNo18.substr(0,2))];
            return true;
          }

          clsIDCard.prototype.IsDate = function(strDate) {
            var r = strDate.match(/^(\d{1,4})(\d{1,2})(\d{1,2})$/);
            if(r==null)return false;
            var d= new Date(r[1], r[2]-1, r[3]);
            return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[2]&&d.getDate()==r[3]);
          }

           

          頁面部分**************************************************************

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
          <title>身份證驗證</title>
          <script src="idCard.js"></script>
          </head>
          <body>
          <script>
           function valiIdCard(idCard){
            var checkFlag = new clsIDCard(idCard);
            if (!checkFlag.IsValid()) {
             alert("輸入的身份證號無效,請輸入真實的身份證號!");
             document.getElementByIdx("idCard").focus();
             return false;
            }else{
              alert("正確!");
            }
           }

          </script>
          <input id="idCard" type="text" onblur="valiIdCard(this.value)"/>
          </body>

          posted on 2011-08-25 14:56 不高興 閱讀(10263) 評論(6)  編輯  收藏 所屬分類: HTML/JS/CSS
          評論:
          • # 340503198808136690[未登錄]  丁偉 Posted @ 2012-10-24 23:15
            風格  回復  更多評論   

          • # re: js 驗證身份證號碼  與政治相關的內容) Posted @ 2012-10-30 09:34


            # 340503198808136690[未登錄] 丁偉 Posted @ 2012-10-24 23:15
            風格 回復 更多評論

            新用戶注冊 刷新評論列表

            面向開發者的云計算盛會:VMware vForum 2012(免費)

            博客園 博問 IT新聞 Java程序員招聘
            標題
            姓名
            主頁
            驗證碼 *
            內容(請不要發表任何與政治相關的內容)   回復  更多評論   

          • # re: js 驗證身份證號碼[未登錄]  sa Posted @ 2013-06-09 13:40
            dd  回復  更多評論   

          • # re: js 驗證身份證號碼[未登錄]  liu Posted @ 2013-06-26 15:43
            樓主寫的很詳細,備注的也很好。值得借鑒!  回復  更多評論   

          • # re: js 驗證身份證號碼  xiaoqian Posted @ 2013-10-31 17:39
            樓主寫的很好,看到代碼很學習,有面向對象的感覺  回復  更多評論   

          • # re: js 驗證身份證號碼  孫國建 Posted @ 2013-12-24 09:17
            這個怎么能夠校驗臺灣人的身份證號呢?  回復  更多評論   

           
          Copyright © 不高興 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 泰顺县| 山阳县| 屏边| 新郑市| 开鲁县| 防城港市| 峨眉山市| 碌曲县| 昂仁县| 沿河| 葵青区| 剑川县| 白银市| 腾冲县| 新密市| 阿克苏市| 鄂伦春自治旗| 武安市| 麻城市| 图木舒克市| 威信县| 乌拉特前旗| 南投县| 德清县| 南阳市| 师宗县| 庆城县| 长海县| 会东县| 独山县| 九龙城区| 永济市| 平湖市| 宝清县| 湖口县| 红安县| 庆安县| 宁安市| 中宁县| 华阴市| 汉源县|