1. 程式人生 > >java驗證身份證號碼及編碼規則和提取相應資訊

java驗證身份證號碼及編碼規則和提取相應資訊

身份證前6位【ABCDEF】為行政區劃數字程式碼(簡稱數字碼)說明(參考《GB/T 2260-2007 中華人民共和國行政區劃程式碼》):該數字碼的編制原則和結構分析,它採用三層六位層次碼結構,按層次分別表示我國各省(自治區,直轄市,特別行政區)、市(地區,自治州,盟)、縣(自治縣、縣級市、旗、自治旗、市轄區、林區、特區)。 
數字碼碼位結構從左至右的含義是: 
第一層為AB兩位程式碼表示省、自治區、直轄市、特別行政區; 
第二層為CD兩位程式碼表示市、地區、自治州、盟、直轄市所轄市轄區、縣彙總碼、省(自治區)直轄縣級行政區劃彙總碼,其中: 
——01~20、51~70表示市,01、02還用於表示直轄市所轄市轄區、縣彙總碼; 
——21~50表示地區、自治州、盟; 
——90表示省(自治區)直轄縣級行政區劃彙總碼。 
第三層為EF兩位表示縣、自治縣、縣級市、旗、自治旗、市轄區、林區、特區,其中: 
——01~20表示市轄區、地區(自治州、盟)轄縣級市、市轄特區以及省(自治區)直轄縣級行政區劃中的縣級市,01通常表示轄區彙總碼; 
——21~80表示縣、自治縣、旗、自治旗、林區、地區轄特區; 
——81~99表示省(自治區)轄縣級市。 

身份證合法性校驗:IdcardValidator.java

  1. import java.text.ParseException;   
  2. import java.text.SimpleDateFormat;   
  3. import java.util.Calendar;   
  4. import java.util.Date;   
  5. import java.util.HashMap;   
  6. import java.util.Map;   
  7. import java.util.regex.Pattern;   
  8. /**  
  9.  *         <p>  
  10.  *         類說明:身份證合法性校驗 
     
  11.  *         </p>  
  12.  *         <p>  
  13.  *         --15位身份證號碼:第7、8位為出生年份(兩位數),第9、10位為出生月份,第11、12位代表出生日期,第15位代表性別,奇數為男,偶數為女。  
  14.  *         --18位身份證號碼:第7、8、9、10位為出生年份(四位數),第11、第12位為出生月份,第13、14位代表出生日期,第17位代表性別,奇數為男,偶數為女。  
  15.  *         </p>  
  16.  */
  17. @SuppressWarnings({"unchecked","unused","all"
    })   
  18. publicclass IdcardValidator {   
  19. /**  
  20.      * 省,直轄市程式碼表: { 11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",  
  21.      * 21:"遼寧",22:"吉林",23:"黑龍江",31:"上海",32:"江蘇",  
  22.      * 33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",  
  23.      * 42:"湖北",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",  
  24.      * 51:"四川",52:"貴州",53:"雲南",54:"西藏",61:"陝西",62:"甘肅",  
  25.      * 63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外"}  
  26.      */
  27. protected String codeAndCity[][] = { { "11""北京" }, { "12""天津" },   
  28.             { "13""河北" }, { "14""山西" }, { "15""內蒙古" }, { "21""遼寧" },   
  29.             { "22""吉林" }, { "23""黑龍江" }, { "31""上海" }, { "32""江蘇" },   
  30.             { "33""浙江" }, { "34""安徽" }, { "35""福建" }, { "36""江西" },   
  31.             { "37""山東" }, { "41""河南" }, { "42""湖北" }, { "43""湖南" },   
  32.             { "44""廣東" }, { "45""廣西" }, { "46""海南" }, { "50""重慶" },   
  33.             { "51""四川" }, { "52""貴州" }, { "53""雲南" }, { "54""西藏" },   
  34.             { "61""陝西" }, { "62""甘肅" }, { "63""青海" }, { "64""寧夏" },   
  35.             { "65""新疆" }, { "71""臺灣" }, { "81""香港" }, { "82""澳門" },   
  36.             { "91""國外" } };   
  37. private String cityCode[] = { "11""12""13""14""15""21""22",   
  38. "23""31""32""33""34""35""36""37""41""42""43",   
  39. "44""45""46""50""51""52""53""54""61""62""63",   
  40. "64""65""71""81""82""91" };   
  41. 相關推薦

    java驗證身份證號碼編碼規則提取相應資訊

    身份證前6位【ABCDEF】為行政區劃數字程式碼(簡稱數字碼)說明(參考《GB/T 2260-2007 中華人民共和國行政區劃程式碼》):該數字碼的編制原則和結構分析,它採用三層六位層次碼結構,按層次分別表示我國各省(自治區,直轄市,特別行政區)、市(地區,自治州,盟)、縣(自治縣、縣級市、旗、自治旗、市

    java驗證身份證號碼是否有效源代碼

    numeric turn info 末尾 open 範圍 是否 驗證 pri 原文:http://www.open-open.com/code/view/1420373343171 1、描述 用java語言判斷身份證號碼是否有效,地區碼、出身年月、校驗碼等驗證算法

    java驗證身份證號碼

    import java.util.Calendar; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Map; public class IDCardUtil {

    js驗證身份證號碼與出生日期性別

    case 'CompareCodeAndSex':        var Code=vObj.value;        var Sex=vCon.value;         var CodeSex;                if(!vObj.disabled)   

    js驗證身份證號碼(省份 生日規範 避免無效資訊

    var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北",4

    詳細驗證身份證號碼規則姓名(漢字)的java程式碼

    import java.text.SimpleDateFormat; import java.util.Date; /**  * 驗證身份證號碼 身份證號碼, 可以解析身份證號碼的各個欄位,以及驗證身份證號碼是否有效; 身份證號碼構成:6位地址編碼+8位生日+3位順序碼+1位校驗碼  *  * @Cla

    Java實現身份證號碼驗證源碼分享

    分隔 toc bst nbsp port birt random exti 一位數 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar;

    java 驗證手機號碼、電話號碼(包括最新的電信、聯通移動號碼

    -s 轉義 電信號 auth input sim pem csharp class 一、目前的號碼段(2017-06-01更新) 二、代碼 package com.linbilin.test; import java.util.regex.Pattern;

    php 驗證 身份證號碼 合法性 相容 (15位 18位身份證號碼

    <?php header("Content-Type: text/html; charset=utf-8"); echo "<p align='center'> <form method='post'>

    驗證身份證號碼的正確性

    判斷 號碼 match function inpu func urn input alert id為input的id// 判斷身份證是否正確$(‘#iscard‘).blur(function() { var card = $.trim($("#iscard").va

    jquery驗證身份證號碼、手機號碼

    htm tee false 檢測 包括 ber == 香港 bst // 驗證身份證 function IsUserCard(idNo) { if (idNo.length != 0) { if (!checkCard(idNo)) {

    js驗證身份證號碼是否合規

    blog i++ num sub 包括 功能 iso errcode split 需求:最近要做實名驗證的功能,但是驗證身份證號碼和身份證圖片的接口不想短信,比較貴,所以之前我們要驗證嚴謹一點,參考了網上關於驗證身份證號碼的代碼,總結一下 代碼: //驗證身份證號碼 fu

    JS根據身份證號碼精確計算年齡性別

    def user col .get || info fin ret 得到 1 /** 2 * 根據身份證號得到姓別和精確計算年齡 3 */ 4 function analyzeIDCard(IDCard){ 5 var sexAndAge = {};

    正則表示式---驗證身份證號碼

    /** * 正則表示式驗證身份證號碼 * * @param integer $num 所要驗證的身份證號碼 * @return boolean */ public static function isPersonalCard($

    使用Python隨機生成身份證號碼校驗

    GitHub : https://github.com/jayknoxqu/id-number-util 身份組成方式 中華人民共和國國家標準GB 11643-1999《公民身份號碼》中規定:公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。 18位數字組合的方式是:

    Java 驗證身份證號的合法性(只利用校驗位)

    import java.util.Scanner; public class E201_06_04_身份證驗證 { public static void main(String[] args)

    java驗證openssl生成的ssl證書私鑰是否匹配

          最近有一個需求上傳ssl證書和私鑰,但是上傳之前需要驗證ssl證書和私鑰是否正確,其中的業務邏輯涉及到以下幾點: 一、讀取ssl證書,讀取ssl證書公鑰       要實現該功能比較簡單,java裡面有現成的api支援。 

    正則表示式--驗證身份證號碼

    function isCardNo(card){  var pattern = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;  return pattern.t

    C#驗證身份證號碼正確性

    arr lin += for vat .html com pan 驗證身份證 原文:C#驗證身份證號碼正確性18位號碼: 1 private static bool CheckIDCard18(string Id) 2 { 3

    JAVA識別身份證號碼,H5識別身份證號碼,tesseract-ocr識別(二)

    背景介紹 上一篇博文介紹瞭如何使用JAVA識別身份證號碼,假設在截取了身份證號碼資訊的情況下,這一篇博文主要討論一下思路吧,技術方面都是大家會的。 思路分析 H5拍照上傳 —> 服務端擷取身份證號碼 —–> 識別號碼 —–>