帮我整理下身份证校验规则 大陆身份证正则表达式 idCardValid(id) { // 1 "验证通过!

动态 未结 0 8
邮箱用户_lh582
邮箱用户_lh582 LV1 昨天 12:40 发表
摘要:
帮我整理下身份证校验规则 大陆身份证正则表达式 idCardValid(id) { // 1 "验证通过!", 0 //校验不通过 var format = /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/; //号码规则校验 if (!format.test(id)) { return { 'status': 0, 'msg': '身份证号码不合规' }; } //区位码校验 //出生年月日校验 前正则限制起始年份为1900; var year = id.substr(6, 4),//身份证年 month = id.substr(10, 2),//身份证月 date = id.substr(12, 2),//身份证日 time = Date.parse(month + '-' + date + '-' + year),//身份证日期时间戳date now_time = Date.parse(new Date()),//当前时间戳 dates = (new Date(year, month, 0)).getDate();//身份证当月天数 if (time > now_time || date > dates) { return { 'status': 0, 'msg': '出生日期不合规' } } //校验码判断 var c = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //系数 var b = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); //校验码对照表 var id_array = id.split(""); var sum = 0; for (var k = 0; k < 17; k++) { sum += parseInt(id_array[k]) * parseInt(c[k]); } if (id_array[17].toUpperCase() != b[sum % 11].toUpperCase()) { return { 'status': 0, 'msg': '身份证校验码不合规' } } return { 'status': 1, 'msg': '校验通过' } }, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 港澳身份证正则表达式: isHKCard(card) { // 港澳居民来往内地通行证 // 规则: H/M + 10位或6位数字 // 样本: H1234567890 var reg = /^([A-Z]\d{6,10}(\(\w{1}\))?)$/; if (reg.test(card) === false) { return { 'status': 0, 'msg': '港澳居民来往内地通行证号码不合规' }; } else { return { 'status': 1, 'msg': '校验通过' }; } }, 1 2 3 4 5 6 7 8 9 10 11 12 台湾身份证正则表达式: isTWCard(card) { // 台湾居民来往大陆通行证 // 规则: 新版8位或18位数字, 旧版10位数字 + 英文字母 // 样本: 12345678 或 1234567890B var reg = /^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/; if (reg.
以下是对中国大陆身份证、港澳身份证、台湾身份证、护照、军官证和户口本的校验规则的整理和解释: ### 1. 中国大陆身份证校验规则 **正则表达式:** ```javascript /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/; ``` **校验逻辑:** 1. **格式校验**:使用正则表达式校验身份证号码的基本格式。 2. **区位码校验**:前6位为地址码,校验省份、城市、区县。 3. **出生日期校验**:确保出生日期合法且不超过当前日期。 4. **校验码校验**:根据身份证号码的前17位计算校验码,并与第18位进行比对。 **返回值:** - `{ 'status': 1, 'msg': '校验通过' }`:校验通过。 - `{ 'status': 0, 'msg': '身份证号码不合规' }`:校验不通过。 --- ### 2. 港澳身份证校验规则 **正则表达式:** ```javascript /^([A-Z]\d{6,10}(\(\w{1}\))?)$/; ``` **校验逻辑:** - 港澳居民来往内地通行证号码以字母开头,后跟6到10位数字,可能包含括号内的一个字母。 **返回值:** - `{ 'status': 1, 'msg': '校验通过' }`:校验通过。 - `{ 'status': 0, 'msg': '港澳居民来往内地通行证号码不合规' }`:校验不通过。 --- ### 3. 台湾身份证校验规则 **正则表达式:** ```javascript /^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/; ``` **校验逻辑:** - 台湾居民来往大陆通行证号码可以是8位数字、10位数字+字母,或18位数字。 **返回值:** - `{ 'status': 1, 'msg': '校验通过' }`:校验通过。 - `{ 'status': 0, 'msg': '台湾居民来往大陆通行证号码不合规' }`:校验不通过。 --- ### 4. 护照校验规则 **正则表达式:** ```javascript /^([a-zA-z]|[0-9]){5,17}$/; ``` **校验逻辑:** - 护照号码长度为5到17位,可以是字母或数字。 **返回值:** - `{ 'status': 1, 'msg': '校验通过' }`:校验通过。 - `{ 'status': 0, 'msg': '护照号码不合规' }`:校验不通过。 --- ### 5. 军官证校验规则 **正则表达式:** ```javascript /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/; ``` **校验逻辑:** - 军官证号码以中文开头,后跟“字第”,然后是4到8位字母或数字,最后可能跟“号”。 **返回值:** - `{ 'status': 1, 'msg': '校验通过' }`:校验通过。 - `{ 'status': 0, 'msg': '军官证号不合规' }`:校验不通过。 --- ### 6. 户口本校验规则 **正则表达式:** ```javascript /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; ``` **校验逻辑:** - 户口本号码可以是15位数字、18位数字,或17位数字加一个字母X。 **返回值:** - `{ 'status': 1, 'msg': '校验通过' }`:校验通过。 - `{ 'status': 0, 'msg': '户口本号码不合规' }`:校验不通过。 --- ### 总结 以上规则涵盖了常见的身份证件类型,包括中国大陆身份证、港澳身份证、台湾身份证、护照、军官证和户口本。每个规则都通过正则表达式进行格式校验,并根据具体情况进行额外的逻辑校验(如出生日期、校验码等)。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复