Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
6
Task/IBAN/Zkl/iban-1.zkl
Normal file
6
Task/IBAN/Zkl/iban-1.zkl
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
var BN=Import("zklBigNum");
|
||||
fcn validateIBAN(iban){
|
||||
iban=iban-" \t";
|
||||
alphaNums.matches(iban) and (ibans.find(iban[0,2])==iban.len()) and
|
||||
( BN((iban[4,*]+iban[0,4]).apply("toInt",36)) % 97 == 1 )
|
||||
}
|
||||
12
Task/IBAN/Zkl/iban-2.zkl
Normal file
12
Task/IBAN/Zkl/iban-2.zkl
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
fcn validateIBAN(iban){
|
||||
iban=iban-" \t";
|
||||
alphaNums.matches(iban) and (ibans.find(iban[0,2])==iban.len()) and
|
||||
( (iban[4,*]+iban[0,4]).apply("toInt",36) : mod97(_) == 1 )
|
||||
}
|
||||
fcn mod97(str){
|
||||
n:=0; m:=9; M:=0; while(N:=str[n,m]){
|
||||
M=((M.toString()+N).toInt()) % 97;
|
||||
n+=m; m=7;
|
||||
}
|
||||
M
|
||||
}
|
||||
10
Task/IBAN/Zkl/iban-3.zkl
Normal file
10
Task/IBAN/Zkl/iban-3.zkl
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
var alphaNums=RegExp("^[0-9A-Z]+$");
|
||||
var ibans= // Dictionary("AD":24, ...)
|
||||
("AD24 AE23 AL28 AO25 AT20 AZ28 BA20 BE16 BF27 BG22 BH22 BI16 "
|
||||
"BJ28 BR29 CG27 CH21 CI28 CM27 CR21 CV25 CY28 CZ24 DE22 DK18 "
|
||||
"DO28 DZ24 EE20 EG27 ES24 FI18 FO18 FR27 GA27 GB22 GE22 GI23 "
|
||||
"GL18 GR27 GT28 HR21 HU28 IE22 IL23 IR26 IS26 IT27 JO30 KW30 "
|
||||
"KZ20 LB28 LI21 LT20 LU20 LV21 MC27 MD24 ME22 MG27 MK19 ML28 "
|
||||
"MR27 MT31 MU30 MZ25 NL18 NO15 PK24 PL28 PS29 PT25 QA29 RO24 "
|
||||
"RS22 SA24 SE24 SI19 SK24 SM27 SN28 TN24 TR26 UA29 VG24")
|
||||
.split(" ").pump(D(),fcn(w){return(w[0,2],w[2,*].toInt())});
|
||||
20
Task/IBAN/Zkl/iban-4.zkl
Normal file
20
Task/IBAN/Zkl/iban-4.zkl
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// all valid
|
||||
T("GB82 WEST 1234 5698 7654 32","GB82WEST12345698765432",
|
||||
"GR16 0110 1250 0000 0001 2300 695","GB29 NWBK 6016 1331 9268 19",
|
||||
"SA03 8000 0000 6080 1016 7519","CH93 0076 2011 6238 5295 7",
|
||||
"IL62 0108 0000 0009 9999 999")
|
||||
.apply(validateIBAN).println();
|
||||
|
||||
// all invalid
|
||||
T("gb82 west 1234 5698 7654 32","GB82 TEST 1234 5698 7654 32",
|
||||
"GB82 WEST 1243 5698 7654 32","AE82 WEST 1234 5698 7654 32"
|
||||
"IL62-0108-0000-0009-9999-999","US12 3456 7890 0987 6543 210",
|
||||
"GR16 0110 1250 0000 0001 2300 695X","GT11 2222 3333 4444 5555 6666 7777",
|
||||
"MK11 2222 3333 4444 555")
|
||||
.apply(validateIBAN).println();
|
||||
|
||||
// white list from Scala
|
||||
("AD1200012030200359100100 AE260211000000230064016 AL47212110090000000235698741 "
|
||||
...
|
||||
"CH9300762011623852957").split()
|
||||
.apply(validateIBAN).toString(*).println();
|
||||
Loading…
Add table
Add a link
Reference in a new issue