您的位置:首页 > Web前端 > JavaScript

[js]身份证号码验证

2017-12-01 13:17 176 查看
function(params) {

var sId = params.idnumber;
var city={
11:"北京",
12:"天津",
13:"河北",
14:"山西",
15:"内蒙古",
21:"辽宁",
22:"吉林",
23:"黑龙江",
31:"上海",
32:"江苏",
33:"浙江",
34:"安徽",
35:"福建",
36:"江西",
37:"山东",
41:"河南",
42:"湖北",
43:"湖南",
44:"广东",
45:"广西",
46:"海南",
50:"重庆",
51:"四川",
52:"贵州",
53:"云南",
54:"西藏 ",
61:"陕西",
62:"甘肃",
63:"青海",
64:"宁夏",
65:"新疆",
71:"台湾",
81:"香港",
82:"澳门",
91:"国外 "};
var iSum=0 ;
var info="" ;
if(!/^\d{17}(\d|x)$/i.test(sId)) return false;
sId=sId.replace(/x$/i,"a");
if(city[parseInt(sId.substr(0,2))]==null) return false;
var sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/")) ;
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate())) return false;
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ;
if(iSum%11!=1) return false;
//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女");//此次还可以判断出输入的身份证号的人性别
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: