根据身份证号,取得行政区划的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:"新乐市"
}
} }
根据身份证号,取得行政区划的Javascript实现的更多相关文章
- 身份证号校验原理及JavaScript实现
在网站中,总有各种各样的表单,用户使用表单来向服务器发送数据,进行交互. 然而,代代相传的经验是,永远不要信任用户的输入,一定要对数据进行验证.如果使用不经验证的表单,轻则会有大量无效提交 ...
- JavaScript验证身份证号
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncodin ...
- javascript实现验证身份证号的有效性并提示
javascript实现验证身份证号的有效性并提示 function nunber(allowancePersonValue){ if(allowancePersonValue=="身份证号 ...
- JavaScript 正则表单验证(用户名、密码、确认密码、手机号、座机号、身份证号)
1.关于JavaScript表单验证,如果使用双向绑定的前端js框架,会更容易的多.但是博主还是建议大家不要脱离源生js本身.因为源生js才是王道. 注意: a.代码中的错误提示可能会没有,在代码中找 ...
- JavaScript 通过身份证号获取出生日期、年龄、性别 、籍贯
JavaScript 通过身份证号获取出生日期.年龄.性别 .籍贯(很全) 效果图: 示例代码: //由于没有写外部JS,所以代码比较长!!! <!DOCTYPE html PUBLIC &qu ...
- JavaScript正则验证数字、英文、电话号、身份证号、邮箱地址、链接地址等
验证是否为数字:/^[0-9]*$/验证是否为汉字:/^[\u4e00-\u9fa5],{0,}$/验证x-y位的数字:/^\d{x,y}$/验证由26个英文字母组成的字符串:/^[A-Za-z]+$ ...
- javascript根据身份证号判断精确周岁年龄
前言: 根据身份证号判断精确周岁年龄,可以精确到天,即周岁以生日当天为准,生日当天周岁+1,少一天则不加. 实现方法: <!DOCTYPE html> <html> <h ...
- Javascript 身份证号获得出生日期、获得性别、检查身份证号码
//---------------------------------------------------------- // 功能:根据身份证号获得出生日期 // 参数:身份证号 psidno // ...
- [javaScript]身份证号信息解析
之前一直在思考是不是该把工作中一些问题写出来(可能是简单的问题),现在的想法是应该写出来这些简单的问题.虽然工作中可能并没有很多特别难的问题让你去解决,因为公司的招人就是根据你的能力来匹配的嘛. 简单 ...
随机推荐
- RSA js加密 java解密
1. 首先你要拥有一对公钥.私钥: ``` pubKeyStr = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1gr+rIfYlaNUNLiFsK/Kn ...
- excel vba 高级过滤
excel vba 高级过滤 Sub shaixuan() Dim database As Range '定义数据区域 Dim criteria_range As Range '定义条件区域 Dim ...
- js添加千位分隔符
function thousandBitSeparator(num){ var re=/\d{1,3}(?=(\d{3})+$)/g; var n1=num.toString().replace(/^ ...
- swift class type isa-swizzling
class 是引用类型,生成的实例分布在 Heap(堆) 内存区域上,在 Stack(栈)只存放着一个指向堆中实例的指针.因为考虑到引用类型的动态性和 ARC 的原因,class 类型实例需要有一块单 ...
- cf536b——优先队列的运用
题目 题目:cf536 B题 题目大意:一个饭店有n种食物,每种食物有对应的价格和数量,然后有m个顾客,每个顾客需要$d_j$份第$t_j$种食物,如果该种食物数量不够,则选其它尽可能便宜的代替(出现 ...
- RabbitMQ 基础概念介绍
AMQP 消息模型 RabbitMQ 是基于 AMQP(高级消息队列协议)的一个开源实现,其内部实际也是 AMQP 的基本概念.
- Spring Data Redis整体介绍 (一)
为什么使用Spring Data Redis 首先Spring Data Redis 是Spring 框架提供的用于操作Redis的客户端. Spring框架是一个全栈Java程序框架,通过DI.AO ...
- RNN,LSTM,GRU基本原理的个人理解
记录一下对RNN,LSTM,GRU基本原理(正向过程以及简单的反向过程)的个人理解 RNN Recurrent Neural Networks,循环神经网络 (注意区别于recursive neura ...
- 四种方案解决ScrollView嵌套ListView问题 [复制链接]
以下文章转自@安卓泡面 在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollVie ...
- C++ STL容器之 stack
STL 中的 stack 是一种容器适配器,而不是一种容器. 它是容器适配器是指,只要支持一系列方法的容器(empty, size, back, push_back, pop_back),都能作为st ...