z***@xindun.org
- 发布:2016-07-25 15:46
- 更新:2016-07-25 16:20
- 阅读:2621
急.......JS怎么实现身份证号码:123456 yyyymmdd xxx y 这样的格式
分类:HTML5+
lhyh - 目前就职成都
比较笨的一个办法,希望帮到你。当然不怕麻烦的话,你可以引入第三方校验插件,比如http://code.ciaoca.com/jquery/validation-engine/demo/
function isCardID(sId) {
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: "国外"
}
var iSum = 0;
var info = "";
var checkFlag=true;
if (!/^\d{17}(\d|x)$/i.test(sId)) checkFlag = false;
sId = sId.replace(/x$/i, "a");
if (aCity[parseInt(sId.substr(0, 2))] == null) checkFlag = 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())) checkFlag = false;
for (var i = 17; i >= 0; i--) iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);
if (iSum % 11 != 1) changeFlag = false;
if (!checkFlag) {
plus.nativeUI.toast('请输入正确的身份证号!');
return false;
}
return true;
}
z***@xindun.org (作者)
好的,谢谢
2016-07-25 17:08
lhyh
回复 z***@xindun.org:有用的话记的回来反馈下
2016-07-25 17:15