validateBIC function

ValidateBICResult validateBIC(
  1. String? bic
)

validateBIC

// returns `ValidateBICResult(errorCodes: <ValidationErrorsBIC>[], valid: true)`
ibantools.validateBIC("NEDSZAJJXXX");

Implementation

ValidateBICResult validateBIC(String? bic) {
  ValidateBICResult result =
      const ValidateBICResult(errorCodes: <ValidationErrorsBIC>[], valid: true);
  if (bic != null && bic.isNotEmpty) {
    final CountrySpec? spec = countrySpecs[bic.toUpperCase().substring(4, 6)];
    if (spec == null) {
      result = result.copyWith(
          valid: false,
          errorCodes: List<ValidationErrorsBIC>.of(
              result.errorCodes..add(ValidationErrorsBIC.noBICCountry)));
    } else {
      final RegExp reg =
          RegExp(r'^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$');
      if (!reg.hasMatch(bic)) {
        result = result.copyWith(
            valid: false,
            errorCodes: List<ValidationErrorsBIC>.of(
                result.errorCodes..add(ValidationErrorsBIC.wrongBICFormat)));
      }
    }
  } else {
    result = result.copyWith(
        valid: false,
        errorCodes: List<ValidationErrorsBIC>.of(
            result.errorCodes..add(ValidationErrorsBIC.noBICProvided)));
  }
  return result;
}