JavaScript正则表达式验证身份证号格式与年龄计算

作者:青柠

时间:2026-10-30

浏览:598

本文介绍如何使用JavaScript正则表达式验证15位或18位身份证号的格式合法性,并演示如何从身份证号中提取出生日期以计算用户是否满22岁。代码示例展示了格式校验与年龄比对的具体实现逻辑,适用于前端基础数据校验场景。

文章目录

利用JavaScript正则表达式验证身份证号格式

下面提供一个基础的JavaScript函数,通过正则表达式检查身份证号码是否符合标准格式:

function isValidIDCard(idCard) {
  // 身份证正则表达式
  var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  return reg.test(idCard);
}

上述代码仅完成了格式层面的校验,并未对身份证号码本身的逻辑合法性进行验证。若需进一步确认号码的真实有效性,建议引入第三方库或调用在线服务接口。

console.log(isValidIDCard('110101199003072733')); // true
console.log(isValidIDCard('11010119900307273X')); // true
console.log(isValidIDCard('1101011990030727')); // false
console.log(isValidIDCard('110101199003072734')); // false

使用JavaScript正则表达式判断身份证对应人员是否为22岁

要判断身份证号码是否对应一名22岁的人员,首先需从号码中提取出生日期,随后计算其实际年龄,最后将该年龄与22进行比对。

function is22YearsOld(idCard) {
  // 获取身份证号码中的出生日期
  var birth = idCard.match(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$/);
  if (birth == null) {
    // 身份证号码格式不正确,直接返回 false
    return false;
  }
  var year = birth[2];
  var month = birth[3];
  var day = birth[4];
  // 计算此人的出生日期
  var birthday = new Date(year + '-' + month + '-' + day);
  // 计算此人的年龄
  var age = new Date().getFullYear() - birthday.getFullYear();
  if (new Date().getMonth() < birthday.getMonth() ||
      (new Date().getMonth() == birthday.getMonth() && new Date().getDate() < birthday.getDate())) {
    age--;
  }
  // 判断此人的年龄是否等于 22
  return age === 22;
  // 判断此人年龄是否小于 22
  return age < 22;
}
console.log(is22YearsOld('110101200102151234')); // true
console.log(is22YearsOld('110101199912312345')); // false

总结

至此,关于利用JavaScript正则表达式判断身份证号的文章介绍完毕。如需了解更多JavaScript正则判断身份证号的相关内容,欢迎查阅本站往期文章或继续阅读后续系列教程,感谢大家的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章