JS校验身份证不超过16周岁
时间: 2024-09-13 21:12:52 浏览: 39
MYSQL数据库校验身份证函数
在JavaScript中,要验证用户输入的身份证号码是否超过16周岁,你需要结合中国身份证的规则进行检查。首先,中国的身份证号码是由18位数字组成,分为前六位、7到14位为出生日期,最后四位为顺序码和校验码。你可以这样做:
```javascript
function validateAge(idNumber) {
// 验证身份证号码格式是否正确
if (!(/^[1-9]\d{5}(18|19|20)\d{2}(\d{2}|[01][0-9]|20)[\d|Xx]$/.test(idNumber))) {
return false;
}
// 解析出生年月日
const birthDate = idNumber.slice(6, 14);
const birthYear = parseInt(birthDate.substring(0, 4));
const birthMonth = parseInt(birthDate.substring(4, 6));
const birthDay = parseInt(birthDate.substring(6));
// 当前日期
const currentDate = new Date();
// 计算年龄
let age = currentDate.getFullYear() - birthYear;
// 如果当前月份小于或等于生日月份,还未过生日
if (currentDate.getMonth() < birthMonth || (currentDate.getMonth() === birthMonth && currentDate.getDate() < birthDay)) {
age--;
}
// 如果身份证显示不满16岁,返回true
return age <= 16;
}
// 使用示例
const id = "123456199801011234"; // 示例身份证号码
if (validateAge(id)) {
console.log("用户未满16周岁");
} else {
console.log("用户已满16周岁");
}
```
阅读全文