@@ -42,38 +42,41 @@ class IbanValidator extends ConstraintValidator
42
42
'AL ' => 'AL\d{2}\d{8}[\dA-Z]{16} ' , // Albania
43
43
'AO ' => 'AO\d{2}\d{21} ' , // Angola
44
44
'AT ' => 'AT\d{2}\d{5}\d{11} ' , // Austria
45
- 'AX ' => 'FI\d{2}\d{6 }\d{7}\d{1 } ' , // Aland Islands
45
+ 'AX ' => 'FI\d{2}\d{3 }\d{11 } ' , // Aland Islands
46
46
'AZ ' => 'AZ\d{2}[A-Z]{4}[\dA-Z]{20} ' , // Azerbaijan
47
47
'BA ' => 'BA\d{2}\d{3}\d{3}\d{8}\d{2} ' , // Bosnia and Herzegovina
48
48
'BE ' => 'BE\d{2}\d{3}\d{7}\d{2} ' , // Belgium
49
49
'BF ' => 'BF\d{2}\d{23} ' , // Burkina Faso
50
50
'BG ' => 'BG\d{2}[A-Z]{4}\d{4}\d{2}[\dA-Z]{8} ' , // Bulgaria
51
51
'BH ' => 'BH\d{2}[A-Z]{4}[\dA-Z]{14} ' , // Bahrain
52
- 'BI ' => 'BI\d{2}\d{12 } ' , // Burundi
52
+ 'BI ' => 'BI\d{2}\d{5}\d{5}\d{11}\d{2 } ' , // Burundi
53
53
'BJ ' => 'BJ\d{2}[A-Z]{1}\d{23} ' , // Benin
54
- 'BY ' => 'BY\d{2}[\dA-Z]{4}\d{4}[\dA-Z]{16} ' , // Belarus - https://bank.codes/iban/structure/belarus/
55
54
'BL ' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2} ' , // Saint Barthelemy
56
- 'BR ' => 'BR\d{2}\d{8}\d{5}\d{10}[A-Z][\dA-Z] ' , // Brazil
55
+ 'BR ' => 'BR\d{2}\d{8}\d{5}\d{10}[A-Z]{1}[\dA-Z]{1} ' , // Brazil
56
+ 'BY ' => 'BY\d{2}[\dA-Z]{4}\d{4}[\dA-Z]{16} ' , // Belarus - https://bank.codes/iban/structure/belarus/
57
57
'CG ' => 'CG\d{2}\d{23} ' , // Congo
58
58
'CH ' => 'CH\d{2}\d{5}[\dA-Z]{12} ' , // Switzerland
59
59
'CI ' => 'CI\d{2}[A-Z]{1}\d{23} ' , // Ivory Coast
60
60
'CM ' => 'CM\d{2}\d{23} ' , // Cameron
61
- 'CR ' => 'CR\d{2}0 \d{3 }\d{14} ' , // Costa Rica
61
+ 'CR ' => 'CR\d{2}\d{4 }\d{14} ' , // Costa Rica
62
62
'CV ' => 'CV\d{2}\d{21} ' , // Cape Verde
63
63
'CY ' => 'CY\d{2}\d{3}\d{5}[\dA-Z]{16} ' , // Cyprus
64
- 'CZ ' => 'CZ\d{2}\d{20 } ' , // Czech Republic
64
+ 'CZ ' => 'CZ\d{2}\d{4}\d{6}\d{10 } ' , // Czech Republic
65
65
'DE ' => 'DE\d{2}\d{8}\d{10} ' , // Germany
66
+ 'DJ ' => 'DJ\d{2}\d{5}\d{5}\d{11}\d{2} ' , // Djibouti
67
+ 'DK ' => 'DK\d{2}\d{4}\d{9}\d{1} ' , // Denmark
66
68
'DO ' => 'DO\d{2}[\dA-Z]{4}\d{20} ' , // Dominican Republic
67
- 'DK ' => 'DK\d{2}\d{4}\d{10} ' , // Denmark
68
69
'DZ ' => 'DZ\d{2}\d{20} ' , // Algeria
69
70
'EE ' => 'EE\d{2}\d{2}\d{2}\d{11}\d{1} ' , // Estonia
71
+ 'EG ' => 'EG\d{2}\d{4}\d{4}\d{17} ' , // Egypt
70
72
'ES ' => 'ES\d{2}\d{4}\d{4}\d{1}\d{1}\d{10} ' , // Spain (also includes Canary Islands, Ceuta and Melilla)
71
- 'FI ' => 'FI\d{2}\d{6 }\d{7}\d{1 } ' , // Finland
73
+ 'FI ' => 'FI\d{2}\d{3 }\d{11 } ' , // Finland
72
74
'FO ' => 'FO\d{2}\d{4}\d{9}\d{1} ' , // Faroe Islands
73
75
'FR ' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2} ' , // France
74
- 'GF ' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2} ' , // French Guyana
75
76
'GB ' => 'GB\d{2}[A-Z]{4}\d{6}\d{8} ' , // United Kingdom of Great Britain and Northern Ireland
76
77
'GE ' => 'GE\d{2}[A-Z]{2}\d{16} ' , // Georgia
78
+ 'GF ' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2} ' , // French Guyana
79
+ 'GG ' => 'GB\d{2}[A-Z]{4}\d{6}\d{8} ' , // Guernsey
77
80
'GI ' => 'GI\d{2}[A-Z]{4}[\dA-Z]{15} ' , // Gibraltar
78
81
'GL ' => 'GL\d{2}\d{4}\d{9}\d{1} ' , // Greenland
79
82
'GP ' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2} ' , // Guadeloupe
@@ -83,17 +86,22 @@ class IbanValidator extends ConstraintValidator
83
86
'HU ' => 'HU\d{2}\d{3}\d{4}\d{1}\d{15}\d{1} ' , // Hungary
84
87
'IE ' => 'IE\d{2}[A-Z]{4}\d{6}\d{8} ' , // Ireland
85
88
'IL ' => 'IL\d{2}\d{3}\d{3}\d{13} ' , // Israel
89
+ 'IM ' => 'GB\d{2}[A-Z]{4}\d{6}\d{8} ' , // Isle of Man
90
+ 'IQ ' => 'IQ\d{2}[A-Z]{4}\d{3}\d{12} ' , // Iraq
86
91
'IR ' => 'IR\d{2}\d{22} ' , // Iran
87
92
'IS ' => 'IS\d{2}\d{4}\d{2}\d{6}\d{10} ' , // Iceland
88
93
'IT ' => 'IT\d{2}[A-Z]{1}\d{5}\d{5}[\dA-Z]{12} ' , // Italy
94
+ 'JE ' => 'GB\d{2}[A-Z]{4}\d{6}\d{8} ' , // Jersey
89
95
'JO ' => 'JO\d{2}[A-Z]{4}\d{4}[\dA-Z]{18} ' , // Jordan
90
- 'KW ' => 'KW\d{2}[A-Z]{4}\d {22} ' , // KUWAIT
96
+ 'KW ' => 'KW\d{2}[A-Z]{4}[\dA-Z] {22} ' , // KUWAIT
91
97
'KZ ' => 'KZ\d{2}\d{3}[\dA-Z]{13} ' , // Kazakhstan
92
98
'LB ' => 'LB\d{2}\d{4}[\dA-Z]{20} ' , // LEBANON
99
+ 'LC ' => 'LC\d{2}[A-Z]{4}[\dA-Z]{24} ' , // Saint Lucia
93
100
'LI ' => 'LI\d{2}\d{5}[\dA-Z]{12} ' , // Liechtenstein (Principality of)
94
101
'LT ' => 'LT\d{2}\d{5}\d{11} ' , // Lithuania
95
102
'LU ' => 'LU\d{2}\d{3}[\dA-Z]{13} ' , // Luxembourg
96
103
'LV ' => 'LV\d{2}[A-Z]{4}[\dA-Z]{13} ' , // Latvia
104
+ 'LY ' => 'LY\d{2}\d{3}\d{3}\d{15} ' , // Libya
97
105
'MC ' => 'MC\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2} ' , // Monaco
98
106
'MD ' => 'MD\d{2}[\dA-Z]{2}[\dA-Z]{18} ' , // Moldova
99
107
'ME ' => 'ME\d{2}\d{3}\d{13}\d{2} ' , // Montenegro
@@ -119,16 +127,21 @@ class IbanValidator extends ConstraintValidator
119
127
'RE ' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2} ' , // Reunion
120
128
'RO ' => 'RO\d{2}[A-Z]{4}[\dA-Z]{16} ' , // Romania
121
129
'RS ' => 'RS\d{2}\d{3}\d{13}\d{2} ' , // Serbia
130
+ 'RU ' => 'RU\d{2}\d{9}\d{5}[\dA-Z]{15} ' , // Russia
122
131
'SA ' => 'SA\d{2}\d{2}[\dA-Z]{18} ' , // Saudi Arabia
132
+ 'SC ' => 'SC\d{2}[A-Z]{4}\d{2}\d{2}\d{16}[A-Z]{3} ' , // Seychelles
133
+ 'SD ' => 'SD\d{2}\d{2}\d{12} ' , // Sudan
123
134
'SE ' => 'SE\d{2}\d{3}\d{16}\d{1} ' , // Sweden
124
135
'SI ' => 'SI\d{2}\d{5}\d{8}\d{2} ' , // Slovenia
125
136
'SK ' => 'SK\d{2}\d{4}\d{6}\d{10} ' , // Slovak Republic
126
137
'SM ' => 'SM\d{2}[A-Z]{1}\d{5}\d{5}[\dA-Z]{12} ' , // San Marino
127
138
'SN ' => 'SN\d{2}[A-Z]{1}\d{23} ' , // Senegal
139
+ 'ST ' => 'ST\d{2}\d{4}\d{4}\d{11}\d{2} ' , // Sao Tome and Principe
140
+ 'SV ' => 'SV\d{2}[A-Z]{4}\d{20} ' , // El Salvador
128
141
'TF ' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2} ' , // French Southern Territories
129
142
'TL ' => 'TL\d{2}\d{3}\d{14}\d{2} ' , // Timor-Leste
130
143
'TN ' => 'TN\d{2}\d{2}\d{3}\d{13}\d{2} ' , // Tunisia
131
- 'TR ' => 'TR\d{2}\d{5}[\dA-Z] {1}[\dA-Z]{16} ' , // Turkey
144
+ 'TR ' => 'TR\d{2}\d{5}\d {1}[\dA-Z]{16} ' , // Turkey
132
145
'UA ' => 'UA\d{2}\d{6}[\dA-Z]{19} ' , // Ukraine
133
146
'VA ' => 'VA\d{2}\d{3}\d{15} ' , // Vatican City State
134
147
'VG ' => 'VG\d{2}[A-Z]{4}\d{16} ' , // Virgin Islands, British
0 commit comments