身份证号码前六位所代表的省,市,区, 以及地区编码下载


Posted in Javascript onApril 12, 2007

在我上一篇文章里面,讨论了如何验证15,18位身份证号码的合法性,并能取得一些简单的信息,
比如:身份,生日,性别等。

现在,可以取城市和地区了。

<script language="javascript">  
// 地区代码实在太大了,我这里只贴出 北京,上海,广州的代码,完整国内地区编码请下载附件  // Go_Rush(阿舜)  from http://ashun.cnblogs.com/  
var areaCode={  
    '11':'北京市','1101':'北京市市辖区','110101':'北京市东城区','110102':'北京市西城区'  
    ,'110103':'北京市崇文区','110104':'北京市宣武区','110105':'北京市朝阳区','110106':'北京市丰台区'  
    ,'110107':'北京市石景山区','110108':'北京市海淀区','110109':'北京市门头沟区','110111':'北京市房山区'  
    ,'1102':'北京市市辖县','110221':'北京市昌平县','110222':'北京市顺义县','110223':'北京市通县'  
    ,'110224':'北京市大兴县','110226':'北京市平谷县','110227':'北京市怀柔县','110228':'北京市密云县'  
    ,'110229':'北京市延庆县'  
    ,'12':'天津市','1201':'天津市市辖区','120101':'天津市和平区'  
    ,'120102':'天津市河东区','120103':'天津市河西区','120104':'天津市南开区','120105':'天津市河北区'  
    ,'120106':'天津市红桥区','120107':'天津市塘沽区','120108':'天津市汉沽区','120109':'天津市大港区'  
    ,'120110':'天津市东丽区','120111':'天津市西青区','120112':'天津市津南区','120113':'天津市北辰区'  
    ,'1202':'天津市市辖县','120221':'天津市宁河县','120222':'天津市武清县','120223':'天津市静海县'  
    ,'120224':'天津市宝坻县','120225':'天津市蓟县'  
    ,'31':'上海市'  
    ,'3101':'上海市市辖区','310101':'上海市黄浦区','310102':'上海市南市区','310103':'上海市卢湾区'  
    ,'310104':'上海市徐汇区','310105':'上海市长宁区','310106':'上海市静安区','310107':'上海市普陀区'  
    ,'310108':'上海市闸北区','310109':'上海市虹口区','310110':'上海市扬浦区','310112':'上海市闵行区'  
    ,'310113':'上海市宝山区','310114':'上海市嘉定区','310115':'上海市浦东新区','3102':'上海市市辖县'  
    ,'310225':'上海市南汇县','310226':'上海市奉贤县','310227':'上海市松江县','310228':'上海市金山县'  
    ,'310229':'上海市青浦县','310230':'上海市崇明县'          
    ,'44':'广东省','4401':'广东省广州市','440101':'广东省广州市市辖区'  
    ,'440102':'广东省广州市东山区','440103':'广东省广州市荔湾区'  
    ,'440104':'广东省广州市越秀区','440105':'广东省广州市海珠区'  
    ,'440106':'广东省广州市天河区','440107':'广东省广州市芳村区'  
    ,'440111':'广东省广州市白云区','440112':'广东省广州市黄埔区'  
    ,'440122':'广东省从花县','440181':'广东省番禺市','440182':'广东省花都市','440183':'广东省增城市'  
    ,'71':'台湾省','7100':'台湾','710000':'台湾省'      
    ,'72':'香港','7200':'香港特别行政区','720000':'香港特别行政区'  
    ,'73':'澳门','7300':'澳门特别行政区'  
    ,'91':'国外'  
}  

function checkId(pId){  
    var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2];  
    var Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];  
    var Checker = [1,9,8,7,6,5,4,3,2,1,1];  
    if(pId.length != 15 && pId.length != 18)    return "身份证号共有 15 码或18位";  
    var Ai=pId.length==18?pId.substring(0,17):pId.slice(0,6)+"19"+pId.slice(6,16);  
    if (!/^\d+$/.test(Ai)) return "身份证除最后一位外,必须为数字!";  
    var yyyy=Ai.slice(6,10),mm=Ai.slice(10,12)-1,dd=Ai.slice(12,14);  
    var d=new Date(yyyy,mm,dd),year=d.getFullYear(),mon=d.getMonth(),day=d.getDate(),now=new Date();  
    if (year!=yyyy || mon!=mm || day!=dd || d>now || now.getFullYear()-year>140) return "身份证输入错误!";  
    for(var i=0,ret=0;i<17;i++)  ret+=Ai.charAt(i)*Wi[i];      
    Ai+=arrVerifyCode[ret %=11];       
    return pId.length ==18 && pId.toLowerCase() != Ai?"身份证输入错误!":Ai;  
};  
function getInfo(id){               
    //根据身份证取 省份,生日,性别  Go_Rush(阿舜) from http://ashun.cnblogs.com/  
    id=checkId(id)  
    if (isNaN(id)) return "错误的身份证号码"      
    var id=String(id),sex=id.slice(14,17)%2?"男":"女"  
    prov=areaCode[id.slice(0,6)] || areaCode[id.slice(0,4)] || areaCode[id.slice(0,2)] || "未知地区"  
    var birthday=(new Date(id.slice(6,10),id.slice(10,12)-1,id.slice(12,14))).toLocaleDateString()   
    return [prov,birthday,sex]    
}  
var id="110102198006262301"   
alert(getInfo(id))   
</script>

下载(64kb) 
建议: 地区编码很大,900多行,90Kb大小,建议把他们放在数据库里面通过Ajax来取
Javascript 相关文章推荐
Extjs ajax同步请求时post方式参数发送方式
Aug 05 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
Dec 28 Javascript
关于jQuery object and DOM element
Apr 15 Javascript
js文本框输入点回车触发确定兼容IE、FF等
Nov 19 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
Mar 04 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
jquery表单验证需要做些什么
Nov 17 Javascript
flexslider.js实现移动端轮播
Feb 05 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
Sep 04 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 Javascript
如何获取vue单文件自身源码路径
May 06 Javascript
Vue可自定义tab组件用法实例
Oct 24 Javascript
对google个性主页的拖拽效果的js的完整注释[转]
Apr 10 #Javascript
FireFox中textNode分片的问题
Apr 10 #Javascript
AJAX架构之Dojo篇
Apr 10 #Javascript
Dojo之路:如何利用Dojo实现Drag and Drop效果
Apr 10 #Javascript
给moz-firefox下添加IE方法和属性
Apr 10 #Javascript
用javascript父窗口控制只弹出一个子窗口
Apr 10 #Javascript
javascript 控制弹出窗口
Apr 10 #Javascript
You might like
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
python访问sqlserver示例
2014/02/10 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
Python实现破解猜数游戏算法示例
2017/09/25 Python
python中Apriori算法实现讲解
2017/12/10 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
css3弹性盒模型实例介绍
2013/05/27 HTML / CSS
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
STP的判定过程
2012/10/01 面试题
元旦红领巾广播稿
2014/02/19 职场文书
听课评语大全
2014/04/30 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
Redis分布式锁Redlock的实现
2021/08/07 Redis
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers