身份证号老版的是15位,新版的是18位(包括最后一位是X的校验)
function isIDNumber(s) {
return /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/.test(s) || /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(s)
}
返回结果:true 或者 false
下面来通过身份证获取出生日期
function getBirthdayByIdCard(idCard) {
let birth = (idCard.length === 18) ? idCard.slice(6, 14) : idCard.slice(6, 12);
// 18位:提取到第17位数字;15位:提去到最后一位数字;
let birthDay = (idCard.length === 18) ? ([birth.slice(0, 4),
birth.slice(4, 6), birth.slice(-2)
]).join('-') : ([
'19' + birth.slice(0, 2), birth.slice(2, 4), birth.slice(-2)
]).join('-');
return birthDay
}
直接调用getBirthdayByIdCard("身份证号")就可以获取到出生日期了。