isIBAN method

bool isIBAN(
  1. String value
)

Check if the string is a valid IBAN.

Implementation

bool isIBAN(String value) {
  final String iban = value.replaceAll(' ', '').toUpperCase();

  if (iban.length < 15) {
    return false;
  }

  final String rearranged = iban.substring(4) + iban.substring(0, 4);
  final String numericIban = rearranged.split('').map((String char) {
    final int charCode = char.codeUnitAt(0);
    return charCode >= 65 && charCode <= 90
        ? (charCode - 55).toString()
        : char;
  }).join();

  int remainder = int.parse(numericIban.substring(0, 9)) % 97;
  for (int i = 9; i < numericIban.length; i += 7) {
    remainder =
        int.parse(
          remainder.toString() +
              numericIban.substring(
                i,
                i + 7 < numericIban.length ? i + 7 : numericIban.length,
              ),
        ) %
        97;
  }

  return remainder == 1;
}