1.创建校验视口,获取页面传入的身份证号参数

2.插入下方校验身份证号自定义代码段
/*INSBEGIN:CUSTOM*/
function() {
var code = inputs.shenfenzhenghao;
//验证身份证
var city = {
11: "北京",
12: "天津",
13: "河北",
14: "山西",
15: "内蒙古",
21: "辽宁",
22: "吉林",
23: "黑龙江 ",
31: "上海",
32: "江苏",
33: "浙江",
34: "安徽",
35: "福建",
36: "江西",
37: "山东",
41: "河南",
42: "湖北 ",
43: "湖南",
44: "广东",
45: "广西",
46: "海南",
50: "重庆",
51: "四川",
52: "贵州",
53: "云南",
54: "西藏 ",
61: "陕西",
62: "甘肃",
63: "青海",
64: "宁夏",
65: "新疆",
71: "台湾",
81: "香港",
82: "澳门"
};
if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)) {
var Err = new LogicError();
Err.errorCode = -101;
Err.message.message = {
"tips": "身份证号格式错误"
};
throw Err;
}
if (!city[code.substring(0, 2)]) {
var Err = new LogicError();
Err.errorCode = -101;
Err.message.message = {
"tips": "地址编码错误"
};
throw Err;
}
if (code.length == 18) { //18位身份证需要验证最后一位校验位
var codeArr = code.split('');
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; //加权因子
var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]; //校验位
var sum = 0;
for (var i = 0; i < 17; i++) {
sum += codeArr[i] * factor[i];
}
if (parity[sum % 11] != codeArr[17]) {
var Err = new LogicError();
Err.errorCode = -101;
Err.message.message = {
"tips": "校验位错误"
};
throw Err;
}
}
//省份
tmp_data.home = city[code.substring(0, 2)];
//生日
tmp_data.birthday = code.substring(6, 10) + '年' + code.substring(10, 12) + '月' + code.substring(12, 14) + '日';
//性别
if (code.length == 15) {
tmp_data.sex = code.substring(14, 15) % 2 == 0 ? '女' : '男';
} else if (code.length == 18) {
tmp_data.sex = code.substring(14, 17) % 2 == 0 ? '女' : '男';
}
},
/*INSEND:CUSTOM*/
3.返回信息
/*INSBEGIN:STDOUT*/
function() {
_.extend(finish_data, {
"success": true,
"_runCommand": [{
"command": "updatelv",
"params": [{
"home": tmp_data.home,//省份
"birthday": tmp_data.birthday,//生日
"sex": tmp_data.sex//性别
}]
}]
});
},
//@wweditorinfo:{"id":"cf760ed9cbd5d5e99d047f3b7ac9dad0","editor":{"jsonValue":{"success":true,"_runCommand":[{"command":"updatelv","params":[{"a":"newValue"}]}]},"steppurpose":{"purpose":"finishdata"}}}
/*INSEND:STDOUT*/