|
发表于 2015-8-12 09:38:40
|
显示全部楼层
比JS实现内容多多
function getIdCardInfo(o) {
var e = {
isTrue : false,
year : null,
month : null,
day : null,
isMale : false,
isFemale : false
};
if (!o && 15 != o.length && 18 != o.length) {
e.isTrue = false;
return e.isTrue
}
if (15 == o.length) {
var k = o.substring(6, 8);
var j = o.substring(8, 10);
var l = o.substring(10, 12);
var b = o.substring(14, 15);
var n = new Date(k, parseFloat(j) - 1, parseFloat(l));
if (n.getYear() != parseFloat(k) || n.getMonth() != parseFloat(j) - 1
|| n.getDate() != parseFloat(l)) {
e.isTrue = false
} else {
e.isTrue = true;
e.year = n.getFullYear();
e.month = n.getMonth() + 1;
e.day = n.getDate();
if (b % 2 == 0) {
e.isFemale = true;
e.isMale = false
} else {
e.isFemale = false;
e.isMale = true
}
}
return e.isTrue
}
if (18 == o.length) {
var k = o.substring(6, 10);
var j = o.substring(10, 12);
var l = o.substring(12, 14);
var b = o.substring(14, 17);
var n = new Date(k, parseFloat(j) - 1, parseFloat(l));
if (n.getFullYear() != parseFloat(k)
|| n.getMonth() != parseFloat(j) - 1
|| n.getDate() != parseFloat(l)) {
e.isTrue = false;
return e.isTrue
}
var c = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];
var a = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];
var h = 0;
var g = o.split("");
if (g[17].toLowerCase() == "x") {
g[17] = 10
}
for (var f = 0; f < 17; f++) {
h += c[f] * g[f]
}
var f = h % 11;
if (g[17] != a[f]) {
return e.isTrue = false
}
e.isTrue = true;
e.year = n.getFullYear();
e.month = n.getMonth() + 1;
e.day = n.getDate();
if (b % 2 == 0) {
e.isFemale = true;
e.isMale = false
} else {
e.isFemale = false;
e.isMale = true
}
return e.isTrue
}
return e.isTrue
} |
|