wrap15To18 function

String wrap15To18(
  1. String idCard
)

Implementation

String wrap15To18(String idCard) {
  String idCard17 = "";
  if (idCard.length != 15) {
    return "";
  }
  if (_isDigital(idCard)) {
    String birthday = idCard.substring(6, 12);
    DateTime birthDate;
    try {
      birthDate = _formatter.parse(birthday);
    } on Exception catch (e) {
      print(e.toString());
      return "";
    }
    idCard17 = "${idCard.substring(0, 6)}${birthDate.year}${idCard17.substring(8)}";
    var bit = _coverCharToInt(idCard.split(''));
    int sum17 = _getPowerSum(bit);
    String? checkCode = _getCheckCodeBySum(sum17);
    // 获取不到校验位
    if (null == checkCode) {
      return "";
    }
    // 将前17位与第18位校验码拼接
    idCard17 += checkCode;
  } else {
    return "";
  }
  return idCard17;
}