身份证正则表达式 js
以下是身份证正则表达式(18位)的JavaScript代码:
function isIdCardNo(num) {
//身份证号码18位,最后一位可能是数字或字母X
var reg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/;
if (reg.test(num) === false) {
return false;
}
//将身份证号码前17位分别乘上不同的系数
var powers = [
7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2
];
var sum = 0;
for (var i = 0; i < 17; i++) {
sum += num.charAt(i) * powers[i];
}
//根据加权和计算校验码
var codes = [
'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'
];
var code = codes[sum % 11];
//比较校验码和身份证号码最后一位
return num.charAt(17) === code;
}
使用方法:
console.log(isIdCardNo("110101199003073993")); // true
console.log(isIdCardNo("11010119900307399X")); // true
console.log(isIdCardNo("11010119900307399Y")); // false
``
原文地址: https://www.cveoy.top/t/topic/fEBB 著作权归作者所有。请勿转载和采集!