Я не думаю, что эта информация (код BIC / SWIFT) всегда присутствует в номере IBAN. Глядя на статью вики IBAN , каждая страна имеет свой собственный стандарт, поэтому стандартизируются только префикс страны и контрольная сумма. Трейлинг и самая длинная часть всегда являются своего рода банковским маршрутизацией / кодом, соединенным с номером счета. Но проблема в том, что банковский маршрут / код предназначен для большинства стран, а не SWIFT-кода, т.е. не того, что вы ищете. Например, в Германии они используют BLZ, который всегда является цифрой (я думаю, 8 цифр), и 640 901 00 отображается на код BIC VBRTDE6RXXX, который не будет присутствовать в IBAN.
Что вы можете сделать, это:
- укажите список стран, которые вам необходимо поддержать. Возможно добавление большего количества стран позже
- получить алгоритм для каждой страны из статьи вики выше
- очистить или найти и скачать где-нибудь соответствие между кодом банка <-> BIC / SWIFT-кодом для этой страны. Взгляните на этот ресурс
- код вашего алгоритма, чтобы отделить код банка от номера и сопоставить его с кодом BIC из шага 3.