liuyg
2021-10-25 6e66897c999bc28a66bbbb865b87b9f0ca72c958
保安员身份证年份验证精确到日
1 files modified
38 ■■■■ changed files
src/views/securityGuard/securityGuard.vue 38 ●●●● patch | view | raw | blame | history
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();
        }
      }
    };