IBAN: Difference between revisions

Content added Content deleted
(Added Elixir)
No edit summary
Line 2,443:
 
(bye)</lang>
 
=={{header|PowerShell}}==
I have heard that Regex should not be used with IBAN codes. Regex does seem to work, however.
<lang PowerShell>
@'
"Country","Length","Example"
"Albania",28,"AL47212110090000000235698741"
"Andorra",24,"AD1200012030200359100100"
"Austria",20,"AT611904300235473201"
"Belgium",16,"BE68539007547034"
"Bosnia and Herzegovina",20,"BA391290079401028494"
"Bulgaria",22,"BG80BNBG96611020345678"
"Croatia",21,"HR1210010051863000160"
"Cyprus",28,"CY17002001280000001200527600"
"Czech Republic",24,"CZ6508000000192000145399"
"Denmark",18,"DK5000400440116243"
"Estonia",20,"EE382200221020145685"
"Faroe Islands",18,"FO1464600009692713"
"Finland",18,"FI2112345600000785"
"France",27,"FR1420041010050500013M02606"
"Georgia",22,"GE29NB0000000101904917"
"Germany",22,"DE89370400440532013000"
"Gibraltar",23,"GI75NWBK000000007099453"
"Greece",27,"GR1601101250000000012300695"
"Greenland",18,"GL8964710001000206"
"Hungary",28,"HU42117730161111101800000000"
"Iceland",26,"IS140159260076545510730339"
"Ireland",22,"IE29AIBK93115212345678"
"Italy",27,"IT60X0542811101000000123456"
"Kosovo",20,"XK051212012345678906"
"Latvia",21,"LV80BANK0000435195001"
"Liechtenstein",21,"LI21088100002324013AA"
"Lithuania",20,"LT121000011101001000"
"Luxembourg",20,"LU280019400644750000"
"Macedonia",19,"MK07300000000042425"
"Malta",31,"MT84MALT011000012345MTLCAST001S"
"Moldova",24,"MD24AG000225100013104168"
"Monaco",27,"MC5813488000010051108001292"
"Montenegro",22,"ME25505000012345678951"
"Netherlands",18,"NL91ABNA0417164300"
"Norway",15,"NO9386011117947"
"Poland",28,"PL27114020040000300201355387"
"Portugal",25,"PT50000201231234567890154"
"Romania",24,"RO49AAAA1B31007593840000"
"San Marino",27,"SM86U0322509800000000270100"
"Serbia",22,"RS35260005601001611379"
"Slovakia",24,"SK3112000000198742637541"
"Slovenia",19,"SI56191000000123438"
"Spain",24,"ES9121000418450200051332"
"Sweden",24,"SE3550000000054910000003"
"Switzerland",21,"CH9300762011623852957"
"Ukraine",29,"UA573543470006762462054925026"
"United Kingdom",22,"GB29NWBK60161331926819"
'@ -split "`r`n" | Set-Content -Path .\IBAN.csv -Force
 
$ibans = foreach ($iban in Import-Csv -Path .\IBAN.csv)
{
$iban | Select-Object -Property Country,
@{Name='Code' ; Expression={$iban.Example.Substring(0,2)}},
@{Name='Length'; Expression={[int]$iban.Length}},
Example
}
 
$ibans
</lang>
{{Out}}
<pre>
Country Code Length Example
------- ---- ------ -------
Albania AL 28 AL47212110090000000235698741
Andorra AD 24 AD1200012030200359100100
Austria AT 20 AT611904300235473201
Belgium BE 16 BE68539007547034
Bosnia and Herzegovina BA 20 BA391290079401028494
Bulgaria BG 22 BG80BNBG96611020345678
Croatia HR 21 HR1210010051863000160
Cyprus CY 28 CY17002001280000001200527600
Czech Republic CZ 24 CZ6508000000192000145399
Denmark DK 18 DK5000400440116243
Estonia EE 20 EE382200221020145685
Faroe Islands FO 18 FO1464600009692713
Finland FI 18 FI2112345600000785
France FR 27 FR1420041010050500013M02606
Georgia GE 22 GE29NB0000000101904917
Germany DE 22 DE89370400440532013000
Gibraltar GI 23 GI75NWBK000000007099453
Greece GR 27 GR1601101250000000012300695
Greenland GL 18 GL8964710001000206
Hungary HU 28 HU42117730161111101800000000
Iceland IS 26 IS140159260076545510730339
Ireland IE 22 IE29AIBK93115212345678
Italy IT 27 IT60X0542811101000000123456
Kosovo XK 20 XK051212012345678906
Latvia LV 21 LV80BANK0000435195001
Liechtenstein LI 21 LI21088100002324013AA
Lithuania LT 20 LT121000011101001000
Luxembourg LU 20 LU280019400644750000
Macedonia MK 19 MK07300000000042425
Malta MT 31 MT84MALT011000012345MTLCAST001S
Moldova MD 24 MD24AG000225100013104168
Monaco MC 27 MC5813488000010051108001292
Montenegro ME 22 ME25505000012345678951
Netherlands NL 18 NL91ABNA0417164300
Norway NO 15 NO9386011117947
Poland PL 28 PL27114020040000300201355387
Portugal PT 25 PT50000201231234567890154
Romania RO 24 RO49AAAA1B31007593840000
San Marino SM 27 SM86U0322509800000000270100
Serbia RS 22 RS35260005601001611379
Slovakia SK 24 SK3112000000198742637541
Slovenia SI 19 SI56191000000123438
Spain ES 24 ES9121000418450200051332
Sweden SE 24 SE3550000000054910000003
Switzerland CH 21 CH9300762011623852957
Ukraine UA 29 UA573543470006762462054925026
United Kingdom GB 22 GB29NWBK60161331926819
</pre>
<lang PowerShell>
$regex = [regex]'[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{6}[0-9]{5}([a-zA-Z0-9]?){0,16}'
 
foreach ($iban in $ibans)
{
[PSCustomObject]@{
Country = $iban.Country
Example = $iban.Example
IsValid = $regex.IsMatch($iban.Example)
}
}
</lang>
{{Out}}
<pre>
Country Example IsValid
------- ------- -------
Albania AL47212110090000000235698741 True
Andorra AD1200012030200359100100 True
Austria AT611904300235473201 True
Belgium BE68539007547034 True
Bosnia and Herzegovina BA391290079401028494 True
Bulgaria BG80BNBG96611020345678 True
Croatia HR1210010051863000160 True
Cyprus CY17002001280000001200527600 True
Czech Republic CZ6508000000192000145399 True
Denmark DK5000400440116243 True
Estonia EE382200221020145685 True
Faroe Islands FO1464600009692713 True
Finland FI2112345600000785 True
France FR1420041010050500013M02606 True
Georgia GE29NB0000000101904917 True
Germany DE89370400440532013000 True
Gibraltar GI75NWBK000000007099453 True
Greece GR1601101250000000012300695 True
Greenland GL8964710001000206 True
Hungary HU42117730161111101800000000 True
Iceland IS140159260076545510730339 True
Ireland IE29AIBK93115212345678 True
Italy IT60X0542811101000000123456 True
Kosovo XK051212012345678906 True
Latvia LV80BANK0000435195001 True
Liechtenstein LI21088100002324013AA True
Lithuania LT121000011101001000 True
Luxembourg LU280019400644750000 True
Macedonia MK07300000000042425 True
Malta MT84MALT011000012345MTLCAST001S True
Moldova MD24AG000225100013104168 True
Monaco MC5813488000010051108001292 True
Montenegro ME25505000012345678951 True
Netherlands NL91ABNA0417164300 True
Norway NO9386011117947 True
Poland PL27114020040000300201355387 True
Portugal PT50000201231234567890154 True
Romania RO49AAAA1B31007593840000 True
San Marino SM86U0322509800000000270100 True
Serbia RS35260005601001611379 True
Slovakia SK3112000000198742637541 True
Slovenia SI56191000000123438 True
Spain ES9121000418450200051332 True
Sweden SE3550000000054910000003 True
Switzerland CH9300762011623852957 True
Ukraine UA573543470006762462054925026 True
United Kingdom GB29NWBK60161331926819 True
</pre>
 
=={{header|PureBasic}}==