isValid static method

bool isValid(
  1. String idNumber
)

Checks if the provided idNumber is a valid South African ID number.

Returns true if the idNumber is valid; otherwise, returns false.

Implementation

static bool isValid(String idNumber) {
  if (idNumber.length != 13) {
    return false;
  }

  final yymmdd = idNumber.substring(0, 6);
  final sequentialNumber = idNumber.substring(6, 10);
  final citizenship = idNumber.substring(10, 11);
  // String checksumDigit = idNumber.substring(12, 13);

  if (!isValidDate(yymmdd)) {
    return false;
  }

  if (!isValidSequentialNumber(sequentialNumber)) {
    return false;
  }

  if (!isValidCitizenship(citizenship)) {
    return false;
  }

  if (!isValidChecksum(idNumber)) {
    return false;
  }

  return true;
}