先去查一下每个地区的身份证号的前缀(省+市+县+生日(8位或者6位)),再考虑怎么判断吧
解决方案 »
- 为什么js不响应object的onclick事件呢。
- 关于jquery 怎样让 animate不多次执行呢
- 关于用js代码重写html标签的问题,再次求助!
- 求最简单js条件赋值的写法
- 谁有这样的网页层代码,移动灵活,打开和关闭时动画
- 研究了半天JS的"继承",搞晕了
- 这句怎样写?
- JS:confirm中的内容如果是直接定义的字符串可以换行,如果是从input中取得的不能换行?
- vs2003调试jscript,显示“没有可用于当前位置的源代码”怎么办?
- 一个头疼的问题.关于菜单和object的显示问题.谢谢大家
- 关于使用键盘的方向键移动网页上一个无素的问题
- 如何实现表中表格的点击隐藏和再点击打开?望高手指教,谢谢!
<script language=javascript>
var aCity =
{
'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' : "国外"
}
function cidInfo(sId){
var iSum=0
var info=""
if(!/^\d{17}(\d|x)$/i.test(sId))return false;
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区";
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 "Error:非法生日";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1)return "Error:非法证号";
return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}document.write(cidInfo("380524198002300016"),"<br/>");
document.write(cidInfo("340524198002300019"),"<br/>")
document.write(cidInfo("340524197711111111"),"<br/>")
document.write(cidInfo("34052419800101001x"),"<br/>");
document.write(cidInfo("220283198011200331"),"<br/>");
</script>