根据身份证号,取得行政区划的Javascript实现

原文: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:"新乐市"  
            }  
        }  
      
      
    }
原文地址:https://www.cnblogs.com/shihaiming/p/6898482.html