原文: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:"新乐市" } } }