原文:http://www.cnblogs.com/baibaluo/archive/2011/06/03/2071255.html#2585076
項目里需要一個根據身份證號,取得發證地行政區划的的功能。
網上搜了一下,多數都是服務端的實現
這個功能說白了就是一個映射,實在不想放在服務端,想用js的dict實現。
網上有一個js的實現,但是映射好像不很全,有些地區映射不到。
於是決定自己弄一個。
身份證號到行政區划的映射是從ip138那個網站的js里整理出來的,測試了一下,沒有發現映射不到地區的身份證號。
現在分享給大家。
下面貼出的代碼,數據映射部分,只列出了少數的省市縣
完整的js文件有190k,發博客居然不能帶附件。。。鄙視下
大家來這里下載吧。http://files.cnblogs.com/baibaluo/id_card_area.js
/** * 根據身份證號,取得行政區划的js */ var id_card_area = { //根據身份證號取得發證地,身份證號前六位映射到地區的結果例如“110101--北京市東城區”“411202--河南省三門峽市湖濱區” getAreaByIdCard : function(idCard) { if(!idCard || idCard.length < 6) return ''; var provinceNo = idCard.substring(0, 2) + '0000'; var cityNo = idCard.substring(0, 4) + '00'; var countyNo = idCard.substring(0, 6); var provinceName = this.data.province[provinceNo]; var cityName = this.data.city[cityNo]; var countyName = this.data.county[countyNo]; var result; result = (provinceName ? provinceName : '') + '' + (cityName ? cityName : '') + '' + (countyName ? countyName : ''); return result; }, //映射數據,2011年3月從ip138的身份證號前六位查詢的js中整理出來 //數據稍微有點大,這里只列出一部分省市縣,完整數據的js請從附件下載 data:{ province: { 110000:"北京市", 120000:"天津市", 130000:"河北省", 410000:"河南省" }, city:{ 130100:"石家庄市", 130200:"唐山市", 130300:"秦皇島市", 130400:"邯鄲市", 130500:"邢台市", 130600:"保定市", 130700:"張家口市", 130800:"承德市", 130900:"滄州市", 131000:"廊坊市", 131100:"衡水市", 132100:"邯鄲地區", 132200:"邢台地區", 132300:"石家庄市", 132400:"保定地區", 132500:"張家口地區", 132600:"承德地區", 132800:"廊坊地區", 132900:"滄州地區", 133000:"衡水地區", 140100:"太原市", 140200:"大同市", 140300:"陽泉市", 140400:"長治市", 140500:"晉城市", 140600:"朔州市", 140700:"晉中市", 140800:"運城市", 140900:"忻州市", 141000:"臨汾市", 141100:"呂梁市" } county:{ 110101:"東城區", 110102:"西城區", 110103:"崇文區", 110104:"宣武區", 110105:"朝陽區", 110106:"豐台區", 110107:"石景山區", 110108:"海淀區", 110109:"門頭溝區", 110110:"燕山區", 110111:"房山區", 110112:"通州區", 110113:"順義區", 110114:"昌平區", 110115:"大興區", 110116:"懷柔區", 110117:"平谷區", 110221:"昌平縣", 110222:"順義縣", 110223:"通縣", 110224:"大興縣", 110225:"房山縣", 110226:"平谷縣", 110227:"懷柔縣", 110228:"密雲縣", 110229:"延慶縣", 120101:"和平區", 120102:"河東區", 120103:"河西區", 120104:"南開區", 120105:"河北區", 120106:"紅橋區", 120107:"塘沽區", 120108:"漢沽區", 120109:"大港區", 120110:"東麗區", 120111:"西青區", 120112:"津南區", 120113:"北辰區", 120114:"武清區", 120115:"寶坻區", 120221:"寧河縣", 120222:"武清縣", 120223:"靜海縣", 120224:"寶坻縣", 120225:"薊縣", 130101:"市轄區", 130102:"長安區", 130103:"橋東區", 130104:"橋西區", 130105:"新華區", 130106:"郊區", 130107:"井陘礦區", 130108:"裕華區", 130121:"井陘縣", 130122:"獲鹿縣", 130123:"正定縣", 130124:"欒城縣", 130125:"行唐縣", 130126:"靈壽縣", 130127:"高邑縣", 130128:"深澤縣", 130129:"贊皇縣", 130130:"無極縣", 130131:"平山縣", 130132:"元氏縣", 130133:"趙縣", 130181:"辛集市", 130182:"藁城市", 130183:"晉州市", 130184:"新樂市" } } }
