wrap15To18 function
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;
}