September 2017 Update

This commit is contained in:
Ingy döt Net 2017-09-23 10:01:46 +02:00
parent bba7bfd280
commit ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions

View file

@ -1,5 +1,5 @@
func valid_iban(iban) {
static len = Hash.new(
static len = Hash(
AD=>24, AE=>23, AL=>28, AO=>25, AT=>20, AZ=>28, BA=>20, BE=>16, BF=>27,
BG=>22, BH=>22, BI=>16, BJ=>28, BR=>29, CG=>27, CH=>21, CI=>28, CM=>27,
CR=>21, CV=>25, CY=>28, CZ=>24, DE=>22, DK=>18, DO=>28, DZ=>24, EE=>20,
@ -10,22 +10,22 @@ func valid_iban(iban) {
MZ=>25, NL=>18, NO=>15, PK=>24, PL=>28, PS=>29, PT=>25, QA=>29, RO=>24,
RS=>22, SA=>24, SE=>24, SI=>19, SK=>24, SM=>27, SN=>28, TN=>24, TR=>26,
UA=>29, VG=>24,
);
)
# Ensure upper alphanumeric input.
iban -= /\s+/g;
iban.uc! ~~ /^[0-9A-Z]+\z/ || return false;
iban -= /\s+/g
iban.uc! ~~ /^[0-9A-Z]+\z/ || return false
# Validate country code against expected length.
var cc = iban.substr(0, 2);
iban.len == len{cc} || return false;
var cc = iban.substr(0, 2)
iban.len == len{cc} || return false
# Shift and convert.
iban.sub!(/(.{4})(.+)/, {|a,b| b+a});
iban.gsub!(/([A-Z])/, {|a| a.ord - 55});
iban.sub!(/(.{4})(.+)/, {|a,b| b+a})
iban.gsub!(/([A-Z])/, {|a| a.ord - 55})
iban.to_i % 97 == 1;
iban.to_i % 97 == 1
}
say valid_iban("GB82 WEST 1234 5698 7654 32"); #=> true
say valid_iban("GB82 TEST 1234 5698 7654 32"); #=> false
say valid_iban("GB82 WEST 1234 5698 7654 32") #=> true
say valid_iban("GB82 TEST 1234 5698 7654 32") #=> false