本文摘要
在泛微 Ecology EC9 移动建模中,通过 $load 注册身份证号与手机号两个校验函数,并监听 sfzh、lxfs 字段的 change 事件,校验失败时用 Mobile_NS 提示并清空输入框。身份证校验除正则外还核验出生日期与校验码,手机号按号段正则判断,适合移动端表单提交前的即时校验。
$load(function() {
// 身份证号校验函数 function testid(id) { 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': '身份证号码不合规' }; } var year = id.substr(6, 4), month = id.substr(10, 2), date = id.substr(12, 2), time = Date.parse(month + '-' + date + '-' + year), 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': '校验通过' } }
// 手机号校验函数 function testPhoneNumber(phone) { var phoneFormat = /^(13[0-9]|14[5-9]|15[0-9]|16[6]|17[0-9]|18[0-9]|19[0-9])\d{8}$/; if (!phoneFormat.test(phone)) { return { 'status': 0, 'msg': '手机号码不合规' }; } return { 'status': 1, 'msg': '手机号码校验通过' }; }
// 监听身份证输入框变化事件 $f("sfzh").on("change", function () { let MyIDCard = this.value; if (MyIDCard === '') return; var validationResult = testid(MyIDCard);
if (validationResult.status === 0) { Mobile_NS.msg(validationResult.msg); Mobile_NS.alert(validationResult.msg, '好的', function(){ $f("sfzh").val(""); }); } else { Mobile_NS.msg("身份证号校验通过"); } });
// 监听手机号码输入框变化事件 $f("lxfs").on("change", function () { let phoneNumber = this.value; if (phoneNumber === '') return; var phoneValidationResult = testPhoneNumber(phoneNumber);
if (phoneValidationResult.status === 0) { Mobile_NS.msg(phoneValidationResult.msg); Mobile_NS.alert(phoneValidationResult.msg, '好的', function(){ $f("lxfs").val(""); }); } else { Mobile_NS.msg("手机号码校验通过"); } });
});