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


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 相关文章推荐
javascript 操作cookies及正确使用cookies的属性
Oct 15 Javascript
Angularjs 基础入门
Dec 26 Javascript
IE中鼠标经过option触发mouseout的解决方法
Jan 29 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
Jan 13 Javascript
jquery自定义插件开发之window的实现过程
May 06 Javascript
Javascript字符串常用方法详解
Jul 21 Javascript
javascript验证内容为数字以及长度为10的简单实例
Aug 20 Javascript
详解使用nvm安装node.js
Jul 18 Javascript
Taro集成Redux快速上手的方法示例
Jun 21 Javascript
JQuery扩展对象方法操作示例
Aug 21 jQuery
layer.open回调获取弹出层参数的实现方法
Sep 10 Javascript
uniapp与webview之间的相互传值的实现
Jun 29 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
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
详解nodejs微信公众号开发——6.自定义菜单
2017/04/13 NodeJs
vue iview实现动态新增和删除
2020/06/17 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
2020/07/22 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
2020/09/21 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
十条建议帮你提高Python编程效率
2016/02/16 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
Python argparse模块使用方法解析
2020/02/20 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
进程的查看和调度分别使用什么命令
2015/03/25 面试题
中药专业大学生医药工作求职信
2013/10/25 职场文书
新娘父亲婚礼致辞
2014/01/16 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
母亲节寄语大全
2015/02/27 职场文书
2016年国培研修日志
2015/11/13 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书