igi_orion_cignacmb
Version:
Censors words out of text
204 lines (201 loc) • 9.63 kB
JavaScript
/*
* @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;