code: public static boolean check(String idCard) {
          // 验证身份证格式
  
          Matcher matcher = ID_CARD_PATTERN.matcher(idCard);
          if (!matcher.matches()) {
              // 格式不对
              logger.error("身份证格式不对{}", idCard);
              return false;
          }
  
          // 验证最后一位加权码
          byte[] idCardByte = idCard.getBytes();
          int sum = 0;
          for (int i = 0; i < 17; i++) {
              sum += (((int) idCardByte[i]) - 48) * POWER[i];
          }
          int mod = sum % 11;
          int calcLast = DIVISOR[mod];
          char last;
          if (idCardByte[17] == 'x' || idCardByte[17] == 'X') {
              last = 'X';
          } else {
              last = (char) idCardByte[17];
          }
          if (last != calcLast) {
              // 格式不对
              logger.error("加权码错误{}", idCard);
              return false;
          }
          return true;
      }
docs: 检查身份证号是否符合格式
  
  @param idCard 身份证号
  @return 如果身份证号符合身份证格式则返回<code>true</code>