Created
August 27, 2015 18:07
-
-
Save mahmoudimus/bc2dad67eda73ed58722 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# http://en.wikipedia.org/wiki/International_Bank_Account_Number#IBAN_formats_by_country | |
# http://www.swift.com/dsp/resources/documents/IBAN_Registry.pdf | |
al: # Albania | |
length: 28 | |
regexp: > | |
(?<bank_identifier> \d{8}) | |
(?<account_number> [A-Z0-9]{16}) | |
ad: # Andorra | |
length: 24 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<branch_identifier> \d{4}) | |
(?<account_number> [A-Z0-9]{12}) | |
at: # Austria | |
length: 20 | |
regexp: > | |
(?<bank_identifier> \d{5}) | |
(?<account_number> \d{11}) | |
az: # Azerbaijan | |
length: 28 | |
regexp: > | |
(?<bank_identifier> [A-Z0-9]{4}) | |
(?<account_number> \d{20}) | |
bh: # Bahrain | |
length: 22 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}) | |
(?<account_number> [A-Z0-9]{14}) | |
be: # Belgium | |
length: 16 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<account_number> \d{7}) | |
(?<national_check_digits> \d{2}) | |
ba: # Bosnia and Herzegovina | |
length: 20 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<branch_identifier> \d{3}) | |
(?<account_number> \d{8}) | |
(?<national_check_digits> \d{2}) | |
br: # Brazil | |
length: 29 | |
regexp: > | |
(?<bank_identifier> \d{8}) | |
(?<branch_identifier> \d{5}) | |
(?<account_number> \d{10}) | |
(?<account_type> [A-Z]) | |
(?<account_owner> [A-Z0-9]) | |
bg: # Bulgaria | |
length: 22 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}) | |
(?<branch_identifier> \d{4}) | |
(?<account_type> \d{2}) | |
(?<account_number> [A-Z0-9]{8}) | |
cr: # Costa Rica | |
length: 21 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<account_number> \d{14}) | |
hr: # Croatia | |
length: 21 | |
regexp: > | |
(?<bank_identifier> \d{7}) | |
(?<account_number> \d{10}) | |
cy: # Cyprus | |
length: 28 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<branch_identifier> \d{5}) | |
(?<account_number> [A-Z0-9]{16}) | |
cz: # Czech Republic | |
length: 24 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<account_number> \d{6}\d{10}) | |
de: # Germany | |
length: 22 | |
regexp: > | |
(?<bank_identifier> \d{8}) | |
(?<account_number> \d{10}) | |
dk: # Denmark | |
length: 18 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<account_number> \d{9}) | |
(?<national_check_digits> \d{1}) | |
gl: # Greenland (same as Denmark) | |
length: 18 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<account_number> \d{9}) | |
(?<national_check_digits> \d{1}) | |
fo: # Faroe Islands (same as Denmark) | |
length: 18 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<account_number> \d{9}) | |
(?<national_check_digits> \d{1}) | |
do: # Dominican Republic | |
length: 28 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}) | |
(?<account_number> \d{20}) | |
ee: # Estonia | |
length: 20 | |
regexp: > | |
(?<bank_identifier> \d{2}) | |
(?<branch_identifier> \d{2}) | |
(?<account_number> \d{11}) | |
(?<national_check_digits> \d{1}) | |
fi: # Finland | |
length: 18 | |
regexp: > | |
(?<bank_identifier> \d{6}) | |
(?<account_number> \d{7}) | |
(?<national_check_digits> \d{1}) | |
fr: # France | |
length: 27 | |
regexp: > | |
(?<bank_identifier> \d{5}) | |
(?<branch_identifier> \d{5}) | |
(?<account_number> [A-Z0-9]{11}) | |
(?<national_check_digits> \d{2}) | |
ge: # Georgia | |
length: 22 | |
regexp: > | |
(?<bank_identifier> [A-Z]{2}) | |
(?<account_number> \d{16}) | |
gi: # Gibraltar | |
length: 23 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}) | |
(?<account_number> [A-Z0-9]{15}) | |
gr: # Greece | |
length: 27 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<branch_identifier> \d{3}) | |
(?<account_number> [A-Z0-9]{16}) | |
gt: # Guatemala | |
length: 28 | |
regexp: > | |
(?<bank_identifier> [A-Z0-9]{4}) | |
(?<account_number> [A-Z0-9]{20}) | |
hu: # Hungary | |
length: 28 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<branch_identifier> \d{4}) | |
(?<account_number> \d{1}\d{15}) | |
(?<national_check_digits> \d{1}) | |
is: # Iceland | |
length: 26 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<branch_identifier> \d{2}) | |
(?<account_number> \d{6}\d{10}) | |
ie: # Ireland | |
length: 22 | |
regexp: > | |
(?<bank_identifier> [A-Z0-9]{4}) | |
(?<branch_identifier> \d{6}) | |
(?<account_number> \d{8}) | |
il: # Israel | |
length: 23 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<branch_identifier> \d{3}) | |
(?<account_number> \d{13}) | |
it: # Italy | |
length: 27 | |
regexp: > | |
(?<national_check_digits> [A-Z]) | |
(?<bank_identifier> \d{5}) | |
(?<branch_identifier> \d{5}) | |
(?<account_number> [A-Z0-9]{12}) | |
kz: # Kazakhstan | |
length: 20 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<account_number> [A-Z0-9]{13}) | |
kw: # Kuwait | |
length: 30 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}) | |
(?<account_number> [A-Z0-9]{22}) | |
lv: # Latvia | |
length: 21 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}) | |
(?<account_number> [A-Z0-9]{13}) | |
lb: # Lebanon | |
length: 28 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<account_number> [A-Z0-9]{20}) | |
li: # Liechtenstein | |
length: 21 | |
regexp: > | |
(?<bank_identifier> \d{5}) | |
(?<account_number> [A-Z0-9]{12}) | |
lt: # Lithuania | |
length: 20 | |
regexp: > | |
(?<bank_identifier> \d{5}) | |
(?<account_number> \d{11}) | |
lu: # Luxembourg | |
length: 20 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<account_number> [A-Z0-9]{13}) | |
mk: # Macedonia | |
length: 19 | |
regexp: > | |
(?<branch_identifier> \d{3}) | |
(?<account_number> [A-Z0-9]{10}) | |
(?<national_check_digits> \d{2}) | |
mt: # Malta | |
length: 31 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}) | |
(?<branch_identifier> \d{5}) | |
(?<account_number> [A-Z0-9]{18}) | |
mr: # Mauritania | |
length: 27 | |
regexp: > | |
(?<bank_identifier> \d{5}) | |
(?<branch_identifier> \d{5}) | |
(?<account_number> \d{11}) | |
(?<national_check_digits> \d{2}) | |
mu: # Mauritius | |
length: 30 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}\d{2}) | |
(?<branch_identifier> \d{2}) | |
(?<account_number> \d{12}\d{3}[A-Z]{3}) | |
mc: # Monaco | |
length: 27 | |
regexp: > | |
(?<bank_identifier> \d{5}) | |
(?<branch_identifier> \d{5}) | |
(?<account_number> [A-Z0-9]{11}) | |
(?<national_check_digits> \d{2}) | |
md: # Moldova | |
length: 24 | |
regexp: > | |
(?<bank_identifier> [A-Z0-9]{2}) | |
(?<account_number> \d{18}) | |
me: # Montenegro | |
length: 22 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<account_number> (\d{13})(\d{2})) | |
nl: # Netherlands | |
length: 18 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}) | |
(?<account_number> \d{10}) | |
'no': # Norway | |
length: 15 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<account_number> (\d{6})(\d{1})) | |
pk: # Pakistan | |
length: 24 | |
regexp: > | |
(?<bank_identifier> [A-Z0-9]{4}) | |
(?<account_number> \d{16}) | |
ps: # Palestine | |
length: 29 | |
regexp: > | |
(?<bank_identifier> [A-Z0-9]{4}) | |
(?<account_number> \d{21}) | |
pl: # Poland | |
length: 28 | |
regexp: > | |
(?<bank_identifier> \d{8}) | |
(?<account_number> \d{16}) | |
pt: # Portugal | |
length: 25 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<branch_identifier> \d{4}) | |
(?<account_number> \d{11}) | |
(?<national_check_digits> \d{2}) | |
ro: # Romania | |
length: 24 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}) | |
(?<account_number> [A-Z0-9]{16}) | |
sm: # San Marino | |
length: 27 | |
regexp: > | |
(?<national_check_digits> [A-Z]) | |
(?<bank_identifier> \d{5}) | |
(?<branch_identifier> \d{5}) | |
(?<account_number> [A-Z0-9]{12}) | |
sa: # Saudi Arabia | |
length: 24 | |
regexp: > | |
(?<bank_identifier> \d{2}) | |
(?<account_number> [A-Z0-9]{18}) | |
rs: # Serbia | |
length: 22 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<account_number> \d{13}) | |
(?<national_check_digits> \d{2}) | |
sk: # Slovak Republic | |
length: 24 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<branch_identifier> \d{6}) | |
(?<account_number> \d{10}) | |
si: # Slovenia | |
length: 19 | |
regexp: > | |
(?<bank_identifier> \d{5}) | |
(?<account_number> \d{8}) | |
(?<national_check_digits> \d{2}) | |
es: # Spain | |
length: 24 | |
regexp: > | |
(?<bank_identifier> \d{4}) | |
(?<branch_identifier> \d{4}) | |
(?<national_check_digits> \d{1}\d{1}) | |
(?<account_number> \d{10}) | |
se: # Sweden | |
length: 24 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<account_number> \d{16}\d{1}) | |
ch: # Switzerland | |
length: 21 | |
regexp: > | |
(?<bank_identifier> \d{5}) | |
(?<account_number> [A-Z0-9]{12}) | |
tn: # Tunisia | |
length: 24 | |
regexp: > | |
(?<bank_identifier> \d{2}) | |
(?<branch_identifier> \d{3}) | |
(?<account_number> \d{13}\d{2}) | |
tr: # Turkey | |
length: 26 | |
regexp: > | |
(?<bank_identifier> \d{5})([A-Z0-9]) | |
(?<account_number> [A-Z0-9]{16}) | |
ae: # United Arab Emirates | |
length: 23 | |
regexp: > | |
(?<bank_identifier> \d{3}) | |
(?<account_number> \d{16}) | |
gb: # United Kingdom | |
length: 22 | |
regexp: > | |
(?<bank_identifier> [A-Z]{4}) | |
(?<branch_identifier> \d{6}) | |
(?<account_number> \d{8}) | |
vg: # Virgin Islands, British | |
length: 24 | |
regexp: > | |
(?<bank_identifier> [A-Z0-9]{4}) | |
(?<account_number> \d{16}) | |
# In addition to the above list, Nordea has catalogued IBANs for countries listed below.[32] | |
ua: # Ukraine | |
length: 29 | |
regexp: > | |
(?<bank_identifier> [0-9]{6}) | |
(?<account_number> \d{19}) | |
ao: # Angola | |
length: 25 | |
regexp: '\d{21}' | |
bj: # Benin | |
length: 28 | |
regexp: '[A-Z]\d{23}' | |
bf: # Burkina Faso | |
length: 27 | |
regexp: '\d{23}' | |
bi: # Burundi | |
length: 16 | |
regexp: '\d{12}' | |
cm: # Cameroon | |
length: 27 | |
regexp: '\d{23}' | |
cv: # Cape Verde | |
length: 25 | |
regexp: '\d{21}' | |
ir: # Iran | |
length: 26 | |
regexp: '\d{22}' | |
ci: # Ivory Coast | |
length: 28 | |
regexp: '[A-Z]\d{23}' | |
mg: # Madagascar | |
length: 27 | |
regexp: '\d{23}' | |
ml: # Mali | |
length: 28 | |
regexp: '[A-Z]\d{23}' | |
mz: # Mozambique | |
length: 25 | |
regexp: '\d{21}' | |
sn: # Senegal | |
length: 28 | |
regexp: '[A-Z]\d{23}' | |
# not quite sure about these: | |
# cg: # Republic Congo | |
# length: 27 | |
# # regexp: '' | |
# | |
# dz: # Algeria | |
# length: 24 | |
# # regexp: '' | |
# | |
# eg: # Egypt | |
# length: 27 | |
# # regexp: '' | |
# | |
# ga: # Gabun | |
# length: 27 | |
# # regexp: '' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment