From 6e66897c999bc28a66bbbb865b87b9f0ca72c958 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Mon, 25 Oct 2021 17:10:36 +0800
Subject: [PATCH] 保安员身份证年份验证精确到日
---
src/views/securityGuard/securityGuard.vue | 38 +++++++++++++++++++++++++++++++++-----
1 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index 43a6590..f08b135 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -337,21 +337,49 @@
// };
var date = new Date();
let year = date.getFullYear(),
- oldyear;
+ mouth = date.getMonth() + 1,
+ day = date.getDate(),
+ oldy,
+ oldm,
+ oldd,
+ ok = false;
const validatePassCardid = (rule, value, callback) => {
+ // console.log(oldy, oldm, oldd, year - oldy, mouth, day);
var test =
/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
if (!test.test(value)) {
callback(new Error("请输入正确身份证号码"));
} else {
//加入校验18岁到60岁的
- oldyear = +value.slice(6, 10);
- if (year - oldyear < 18 || year - oldyear > 60) {
+ oldy = +value.slice(6, 10);
+ oldm = +value.slice(10, 12);
+ oldd = +value.slice(12, 14);
+ ok =
+ year - oldy < 18 || year - oldy > 60
+ ? false
+ : year - oldy == 18
+ ? mouth < oldm
+ ? false
+ : mouth > oldm
+ ? true
+ : day < oldd
+ ? false
+ : true
+ : year - oldy == 60
+ ? mouth < oldm
+ ? true
+ : mouth > oldm
+ ? false
+ : day <= oldd
+ ? false
+ : true
+ : true;
+ if (ok) {
+ callback();
+ } else {
// callback(new Error("根据国家要求,需在18岁至60岁"));
callback(new Error("年龄不符"));
- } else {
- callback();
}
}
};
--
Gitblit v1.9.3