RosettaCodeData/Task/IBAN/Zkl/iban-2.zkl
2017-09-25 22:28:19 +02:00

12 lines
307 B
Text

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
}