身份证号老版的是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("身份证号")就可以获取到出生日期了。
该博客介绍了两个JavaScript函数,用于验证15位和18位身份证号码的正确性,并从身份证号码中提取出生日期。isIDNumber()函数通过正则表达式检查身份证号码的有效性,getBirthdayByIdCard()函数则根据身份证号码长度返回对应的出生日期。
1311

被折叠的 条评论
为什么被折叠?



