js使用正则表达式对身份证号的判断
作者:张振涛,代码界的搬运工
这篇文章主要给大家介绍了关于js使用正则表达式对身份证号的判断的相关资料,在用户注册页面有些需求要求的比较严格,需要对身份证验证是否合法,通过此功能严格此系统软件,从而过滤到很多,需要的朋友可以参考下
1.js正则判断身份证号是否正确
以下是一个简单的 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
2.js使用正则判断当前身份证号是否是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
总结
到此这篇关于js使用正则表达式对身份证号判断的文章就介绍到这了,更多相关js正则判断身份证号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!