javascript實現的身份證號碼合法性驗證程式碼
身份證合法性驗證可能在實際應用中較少一些,因為很少需要填寫身份證號碼,這涉及到人的隱私問題,一般在政府網站或者較為大型的網站有使用,儘管這樣,這也是一個需要掌握的技巧或者程式碼積累,下面就是一段能夠實現此功能的程式碼。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼function checkIdcard(num){ num = num.toUpperCase(); //身份證號碼為15位或者18位,15位時全為數字,18位前17位為數字,最後一位是校驗位,可能為數字或字元X。 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))){ //alert('輸入的身份證號長度不對,或者號碼不符合規定!\n15位號碼應全為數字,18位號碼末位可以為數字或X。'); return false; } //校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。 //下面分別分析出生日期和校驗位 var len, re; len = num.length; if(len == 15) { re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); var arrSplit = num.match(re); //檢查生日日期是否正確 var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); var bGoodDay; bGoodDay=(dtmBirth.getYear()==Number(arrSplit[2]))&&((dtmBirth.getMonth()+1)==Number(arrSplit[3]))&&(dtmBirth.getDate()==Number(arrSplit[4])); if (!bGoodDay){ //alert('輸入的身份證號裡出生日期不對!'); return false; } else{ //將15位身份證轉成18位 //校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。 var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); var nTemp = 0, i; num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); for(i = 0; i < 17; i ++){ nTemp += num.substr(i, 1) * arrInt[i]; } num += arrCh[nTemp % 11]; return true; } } if (len == 18){ re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); var arrSplit = num.match(re); //檢查生日日期是否正確 var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); var bGoodDay; bGoodDay=(dtmBirth.getFullYear()==Number(arrSplit[2]))&&((dtmBirth.getMonth()+1)==Number(arrSplit[3]))&&(dtmBirth.getDate()==Number(arrSplit[4])); if (!bGoodDay){ //alert(dtmBirth.getYear()); //alert(arrSplit[2]); //alert('輸入的身份證號裡出生日期不對!'); return false; } else { //檢驗18位身份證的校驗碼是否正確。 //校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。 var valnum; var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); var nTemp = 0, i; for(i = 0; i < 17; i ++){ nTemp += num.substr(i, 1) * arrInt[i]; } valnum = arrCh[nTemp % 11]; if(valnum != num.substr(17, 1)){ //alert('18位身份證的校驗碼不正確!應該為:' + valnum); return false; } return true; } } return false; }
相關文章
- javascript實現的身份證號碼驗證程式碼JavaScript
- js實現的身份證合法性驗證程式碼JS
- 精確驗證身份證號碼合法性程式碼例項
- js實現身份證號碼驗證JS
- javascript身份證號碼校驗JavaScript
- 精確驗證身份證號碼程式碼
- Ext實現的身份證格式驗證程式碼
- php與js方式驗證手機號碼和郵件地址的合法性,js驗證身份證號碼PHPJS
- PHP 驗證身份證號碼PHP
- JS校驗身份證號的合法性JS
- 身份證號碼驗證系統
- 身份證號碼之js驗證JS
- 精準實現身份證號碼格式校驗程式碼例項
- JS驗證身份證的合法性JS
- 身份證號碼驗證演算法演算法
- 手機號碼和電話號碼合法性驗證程式碼
- 正則實現二代身份證號碼驗證詳解
- javascript實現的驗證碼程式碼例項JavaScript
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- 身份證號碼的正規表示式及驗證詳解(JavaScript,Regex)JavaScript
- java 實現從15位~18位的身份證號碼轉換,校驗中國大陸公民身份證、香港居民身份證、澳門身份證和臺灣身份證。Java
- javascript 驗證身份證JavaScript
- Javascript使用正則驗證身份證號(簡單)JavaScript
- 身份證號碼校驗位的計算方式
- javascript實現的簡單驗證碼效果程式碼例項JavaScript
- 中國身份證號驗證庫
- C++身份證號驗證C++
- C#驗證身份證號C#
- 驗證子網掩碼合法性程式碼例項
- 驗證ip地址合法性程式碼例項
- swift 郵箱、密碼、手機號、身份證驗證正則Swift密碼
- Javascript 身份證號獲得出生日期、獲得性別、檢查身份證號碼JavaScript
- javascript實現的生成驗證碼隨機數程式碼例項JavaScript隨機
- js正則驗證身份證號JS
- java身份證驗證程式碼IdcardUtils.java分享Java
- 增強版實名認證介面-Java身份證實名認證介面程式碼-身份認證Java
- 驗證網址合法性的正規表示式程式碼
- Java身份證號碼的打碼隱藏(加*)Java