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

根据身份证号,取得行政区划的Javascript实现的更多相关文章

  1. 身份证号校验原理及JavaScript实现

          在网站中,总有各种各样的表单,用户使用表单来向服务器发送数据,进行交互. 然而,代代相传的经验是,永远不要信任用户的输入,一定要对数据进行验证.如果使用不经验证的表单,轻则会有大量无效提交 ...

  2. JavaScript验证身份证号

    <%@ page language="java" contentType="text/html; charset=GB18030" pageEncodin ...

  3. javascript实现验证身份证号的有效性并提示

    javascript实现验证身份证号的有效性并提示 function nunber(allowancePersonValue){ if(allowancePersonValue=="身份证号 ...

  4. JavaScript 正则表单验证(用户名、密码、确认密码、手机号、座机号、身份证号)

    1.关于JavaScript表单验证,如果使用双向绑定的前端js框架,会更容易的多.但是博主还是建议大家不要脱离源生js本身.因为源生js才是王道. 注意: a.代码中的错误提示可能会没有,在代码中找 ...

  5. JavaScript 通过身份证号获取出生日期、年龄、性别 、籍贯

    JavaScript 通过身份证号获取出生日期.年龄.性别 .籍贯(很全) 效果图: 示例代码: //由于没有写外部JS,所以代码比较长!!! <!DOCTYPE html PUBLIC &qu ...

  6. JavaScript正则验证数字、英文、电话号、身份证号、邮箱地址、链接地址等

    验证是否为数字:/^[0-9]*$/验证是否为汉字:/^[\u4e00-\u9fa5],{0,}$/验证x-y位的数字:/^\d{x,y}$/验证由26个英文字母组成的字符串:/^[A-Za-z]+$ ...

  7. javascript根据身份证号判断精确周岁年龄

    前言: 根据身份证号判断精确周岁年龄,可以精确到天,即周岁以生日当天为准,生日当天周岁+1,少一天则不加. 实现方法: <!DOCTYPE html> <html> <h ...

  8. Javascript 身份证号获得出生日期、获得性别、检查身份证号码

    //---------------------------------------------------------- // 功能:根据身份证号获得出生日期 // 参数:身份证号 psidno // ...

  9. [javaScript]身份证号信息解析

    之前一直在思考是不是该把工作中一些问题写出来(可能是简单的问题),现在的想法是应该写出来这些简单的问题.虽然工作中可能并没有很多特别难的问题让你去解决,因为公司的招人就是根据你的能力来匹配的嘛. 简单 ...

随机推荐

  1. RSA js加密 java解密

    1. 首先你要拥有一对公钥.私钥: ``` pubKeyStr = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1gr+rIfYlaNUNLiFsK/Kn ...

  2. excel vba 高级过滤

    excel vba 高级过滤 Sub shaixuan() Dim database As Range '定义数据区域 Dim criteria_range As Range '定义条件区域 Dim ...

  3. js添加千位分隔符

    function thousandBitSeparator(num){ var re=/\d{1,3}(?=(\d{3})+$)/g; var n1=num.toString().replace(/^ ...

  4. swift class type isa-swizzling

    class 是引用类型,生成的实例分布在 Heap(堆) 内存区域上,在 Stack(栈)只存放着一个指向堆中实例的指针.因为考虑到引用类型的动态性和 ARC 的原因,class 类型实例需要有一块单 ...

  5. cf536b——优先队列的运用

    题目 题目:cf536 B题 题目大意:一个饭店有n种食物,每种食物有对应的价格和数量,然后有m个顾客,每个顾客需要$d_j$份第$t_j$种食物,如果该种食物数量不够,则选其它尽可能便宜的代替(出现 ...

  6. RabbitMQ 基础概念介绍

    AMQP 消息模型 RabbitMQ 是基于 AMQP(高级消息队列协议)的一个开源实现,其内部实际也是 AMQP 的基本概念.

  7. Spring Data Redis整体介绍 (一)

    为什么使用Spring Data Redis 首先Spring Data Redis 是Spring 框架提供的用于操作Redis的客户端. Spring框架是一个全栈Java程序框架,通过DI.AO ...

  8. RNN,LSTM,GRU基本原理的个人理解

    记录一下对RNN,LSTM,GRU基本原理(正向过程以及简单的反向过程)的个人理解 RNN Recurrent Neural Networks,循环神经网络 (注意区别于recursive neura ...

  9. 四种方案解决ScrollView嵌套ListView问题 [复制链接]

    以下文章转自@安卓泡面 在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollVie ...

  10. C++ STL容器之 stack

    STL 中的 stack 是一种容器适配器,而不是一种容器. 它是容器适配器是指,只要支持一系列方法的容器(empty, size, back, push_back, pop_back),都能作为st ...