UNPKG

igi_orion_cignacmb

Version:

Censors words out of text

204 lines (201 loc) 9.63 kB
/* * @Author: weicong.ling * @Date: 2020-05-06 10:09:33 * @Last Modified by: weicong.ling * @Last Modified time: 2020-05-11 10:50:09 */ /** * * @param {证件类型} Type * @param {证件号码} No * @param {性别} gender * @param {生日} birthday */ var centralModel = require('../centralModel'); var idNum = function (result) { var Type = result.item.idType.value, No = result.field.value, gender = result.item.sex.value, birthday = result.item.birthday.value; var error = { isCorrect: true, type: "modal", msg: "", code: "1001",//代表组合校验,都归集在这个字段(idNum) isUse: true }; try { if (No == '' || No == null) { error.msg = '证件号不能为空'; error.isCorrect = false; } else { switch (Type) { case "F"://永久居留证 if (No.length != 15) { error.msg = '证件类型为外国人永久居留身份证时,号码长度必须为15位'; error.isCorrect = false; } break case "H"://户口本 if (No.length < 18) { error.msg = '证件类型为身份证、户口本时,号码长度必须为18位'; error.isCorrect = false; } else { if (centralModel.checkIdCard(No)) { if ((No.substring(6, 10) + '-' + No.substring(10, 12) + '-' + No.substring(12, 14)) == birthday) { if (!centralModel.checkSexAndId(No, gender)) { error.msg = '证件号码与性别不匹配'; error.isCorrect = false; } } else { error.msg = '证件号码和出生日期不一致!请确认正确的出生日期。'; error.isCorrect = false; } } else { error.msg = '请输入正确的证件号'; error.isCorrect = false; } } break; case "I"://身份证 if (No.length < 18) { error.msg = '证件类型为身份证、户口本时,号码长度必须为18位'; error.isCorrect = false; } else { if (centralModel.checkIdCard(No)) { if ((No.substring(6, 10) + '-' + No.substring(10, 12) + '-' + No.substring(12, 14)) == birthday) { if (!centralModel.checkSexAndId(No, gender)) { error.msg = '证件号码与性别不匹配'; error.isCorrect = false; } } else { error.msg = '证件号码和出生日期不一致!请确认正确的出生日期。'; error.isCorrect = false; } } else { error.msg = '请输入正确的证件号'; error.isCorrect = false; } } break; case "L"://临时身份证 if (No.length < 18) { error.msg = '证件类型为身份证、户口本时,号码长度必须为18位'; error.isCorrect = false; } else { if (centralModel.checkIdCard(No)) { if ((No.substring(6, 10) + '-' + No.substring(10, 12) + '-' + No.substring(12, 14)) == birthday) { if (!centralModel.checkSexAndId(No, gender)) { error.msg = '请输入正确的证件号'; error.isCorrect = false; } } else { error.msg = '证件号码和出生日期不一致!请确认正确的出生日期。'; error.isCorrect = false; } } else { error.msg = '请输入正确的证件号'; error.isCorrect = false; } } break; case "P"://护照 if (No.length >= 3) { } else { error.msg = '证件类型为护照时,号码长度不能少于3个字符'; error.isCorrect = false; } break; case "T"://港澳通行证 if (No.length <= 20) { if (No.length < 8) { error.msg = '证件类型为港澳居民来往内地通行证或台湾居民来往大陆通行证时,长度不能少于8个字符'; error.isCorrect = false; } } else { error.msg = '证件类型为港澳居民来往内地通行证或台湾居民来往大陆通行证时,不超过20位数字或字母'; error.isCorrect = false; } break; case "R"://台胞通行证 if (No.length <= 20) { if (No.length < 8) { error.msg = '证件类型为港澳居民来往内地通行证或台湾居民来往大陆通行证时,长度不能少于8个字符'; error.isCorrect = false; } } else { error.msg = '证件类型为港澳居民来往内地通行证或台湾居民来往大陆通行证时,不超过20位数字或字母'; error.isCorrect = false; } break; case "G"://港澳台居民居住证 if (No.length < 18) { error.msg = '证件类型为港澳台居民居住证时,号码长度必须为18位'; error.isCorrect = false; } else { if (No.substring(0, 6) != "810000" && No.substring(0, 6) != "820000" && No.substring(0, 6) != "830000") { error.msg = '请输入正确的证件号'; error.isCorrect = false; } if ((No.substring(6, 10) + '-' + No.substring(10, 12) + '-' + No.substring(12, 14)) == birthday) { } else { error.msg = '证件号码和本页出生日期不一致!'; error.isCorrect = false; } } break; case "S"://士兵证 if (No.length >= 10 && No.length <= 18) { } else { error.msg = '证件类型为军官证或士兵证,号码长度在10-18个字符之间'; error.isCorrect = false; } break; case "A"://军官证 if (No.length >= 10 && No.length <= 18) { } else { error.msg = '证件类型为军官证或士兵证,号码长度在10-18个字符之间'; error.isCorrect = false; } break; case "B"://婴儿证 if (No.length >= 3) { } else { error.msg = '证件类型为出生证,号码长度不能少于3个字符'; error.isCorrect = false; } break; default: if (No.length >= 1) { } else { error.msg = '请输入正确的证件号'; error.isCorrect = false; } break; } } var msg = '证件号码与国籍不匹配' if (result.item.nationality.value == 'HKG') { if (No.substring(0, 6) != "810000" && result.item.idType.value == 'G') { error.isCorrect = false; error.msg = msg; } } if (result.item.nationality.value == 'MAC') { if (No.substring(0, 6) != "820000" && result.item.idType.value == 'G') { error.isCorrect = false; error.msg = msg; } } if (result.item.nationality.value == 'TWN') { if (No.substring(0, 6) != "830000" && result.item.idType.value == 'G') { error.isCorrect = false; error.msg = msg; } } } catch (error) { console.error(error) } return error; }; module.exports = idNum;