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


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 相关文章推荐
Three.js源码阅读笔记(光照部分)
Dec 27 Javascript
jquery下div 的resize事件示例代码
Mar 09 Javascript
使用jQuery简单实现模拟浏览器搜索功能
Dec 21 Javascript
JavaScript中遍历对象的property的3种方法介绍
Dec 30 Javascript
JQuery操作元素的css样式
Mar 09 Javascript
深入理解Javascript中的自执行匿名函数
Jun 03 Javascript
js图片上传前预览功能(兼容所有浏览器)
Aug 24 Javascript
AngularJS 表达式详解及实例代码
Sep 14 Javascript
AngularJS表单验证功能分析
May 26 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
Aug 28 Javascript
关于Vue项目跨平台运行问题的解决方法
Sep 18 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
Apr 06 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转成EXE文件
2006/10/09 PHP
小谈php正则提取图片地址
2014/03/27 PHP
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
python字典get()方法用法分析
2015/04/17 Python
python中hashlib模块用法示例
2017/10/30 Python
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
详解Python中的type和object
2018/08/15 Python
python 把列表转化为字符串的方法
2018/10/23 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
本科生学习总结的自我评价
2013/10/02 职场文书
挂科检讨书范文
2014/02/20 职场文书
金融保险专业求职信
2014/09/03 职场文书
党校学习心得体会范文
2014/09/09 职场文书
工作态度恶劣检讨书
2015/05/06 职场文书
教育读书笔记
2015/07/02 职场文书
医院病假条怎么写
2015/08/17 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电