isIBAN method
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;
}