頻道欄目
首頁 > 程序開發 > Web開發 > php > 正文
PHP 身份證驗證功能代碼實現
2018-07-19 11:23:05         來源:qq_38870831的博客  
收藏   我要投稿

PHP 身份證驗證功能代碼實現

var regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;  
 	//如果通過該驗證,說明身份證格式正確,但準確性還需計算  
 	if (regIdCard.test(identity)) {  
	  if (identity.length == 18) {  
	var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //將前17位加權因子保存在數組里  
	var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2); //這是除以11后,可能產生的11位余數、驗證碼,也保存成數組  
	var idCardWiSum = 0; //用來保存前17位各自乖以加權因子后的總和  
	for (var i = 0; i < 17; i++) {  
	 idCardWiSum += identity.substring(i, i + 1) * idCardWi[i];  
	}  
	var idCardMod = idCardWiSum % 11;//計算出校驗碼所在數組的位置  
	var idCardLast = identity.substring(17);//得到最后一位身份證號碼  
	//如果等于2,則說明校驗碼是10,身份證號碼最后一位應該是X  
	if (idCardMod == 2) {  
	 if (idCardLast == "X" || idCardLast == "x") {  
	
	 } else { 
					layer.tips('身份證填寫有誤,請重新填寫','#identity');	 
	  return false;  
	  //alert("身份證號碼錯誤!");  
	 }  
	} else {  
	 //用計算出的驗證碼與最后一位身份證號碼匹配,如果一致,說明通過,否則是無效的身份證號碼  
	 if (idCardLast == idCardY[idCardMod]) {  
	
	 } else { 
					layer.tips('身份證填寫有誤,請重新填寫','#identity'); 
	  return false;  
	  //alert("身份證號碼錯誤!");  
	 }  
	}  
	  }  
	 } else {  
	  layer.tips('身份證填寫有誤,請重新填寫','#identity');  
	  return false;  
	 } 
點擊復制鏈接 與好友分享!回本站首頁
上一篇:PHP統計當前網站的訪問人數、訪問信息以及被多少次訪問的代碼教程
下一篇:PHP5.4以后新增的trait功能使用介紹
相關文章
圖文推薦
文章
推薦
點擊排行

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

重庆快乐十分开奖记录