util-helpers
Version:
68 lines (66 loc) • 1.84 kB
JavaScript
var regIdCard = /^(\d{2})(\d{2})(\d{2})((?:\d{2})?\d{2})(\d{2})(\d{2})\d{2}(\d)(?:\d|X)?$/i;
var Provinces = [
['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', '台湾省'],
['83', '台湾省'],
['81', '香港特别行政区'],
['82', '澳门特别行政区']
];
function parseIdCard(id) {
var match = regIdCard.exec(id);
if (!match) {
return null;
}
var origin = {
province: match[1],
city: match[2],
area: match[3],
year: match[4],
month: match[5],
day: match[6],
gender: match[7]
};
var province = Provinces.find(function (item) { return item[0] === origin.province; });
if (!province) {
return null;
}
var birthday = "".concat(origin.year, "-").concat(origin.month, "-").concat(origin.day);
var gender = Number(origin.gender) % 2 === 0 ? '女' : '男';
return {
province: province[1],
birthday: birthday,
gender: gender,
origin: origin
};
}
export { parseIdCard as default };