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