This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-validator.git


The following commit(s) were added to refs/heads/master by this push:
     new b942c027 IBANValidator : add Falkland Islands, Mongolia, Nicaragua, 
Oman, Somalia (#209)
b942c027 is described below

commit b942c027f9a1397f4244b6a70561987cfaa7f1bc
Author: homebeaver <homebea...@outlook.de>
AuthorDate: Tue Apr 23 18:30:16 2024 +0200

    IBANValidator : add Falkland Islands, Mongolia, Nicaragua, Oman, Somalia 
(#209)
    
    * add IBANValidator for Falkland Islands, since Jul-23,
    
    Mongolia, Nicaragua, Oman, Somalia
    
    published in IBAN REGISTRY Release 97 – Mar 2024
    
    * IBANValidator Test with examples from IBAN REGISTRY Release 97
    
    the examples for Nicaragua is buggy - I've changed the check digit
---
 .../java/org/apache/commons/validator/routines/IBANValidator.java  | 7 ++++++-
 .../org/apache/commons/validator/routines/IBANValidatorTest.java   | 5 +++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git 
a/src/main/java/org/apache/commons/validator/routines/IBANValidator.java 
b/src/main/java/org/apache/commons/validator/routines/IBANValidator.java
index 4db944d9..aa6136ca 100644
--- a/src/main/java/org/apache/commons/validator/routines/IBANValidator.java
+++ b/src/main/java/org/apache/commons/validator/routines/IBANValidator.java
@@ -147,6 +147,7 @@ public class IBANValidator {
             new Validator("EG", 29, "EG\\d{27}"),                             
// Egypt
             new Validator("ES", 24, "ES\\d{22}"),                             
// Spain
             new Validator("FI", 18, "\\d{16}", "AX"),                         
// Finland
+            new Validator("FK", 18, "FK\\d{2}[A-Z]{2}\\d{12}"),               
// Falkland Islands, since Jul-23
             new Validator("FO", 18, "FO\\d{16}"),                             
// Faroe Islands
             new Validator("FR", 27, "\\d{12}[A-Z0-9]{11}\\d{2}", "GF", "GP", 
"MQ", "RE", "PF", "TF", "YT", "NC", "BL", "MF", "PM", "WF"), // France
             new Validator("GB", 22, "\\d{2}[A-Z]{4}\\d{14}", "IM", "JE", 
"GG"), // United Kingdom
@@ -176,11 +177,14 @@ public class IBANValidator {
             new Validator("MD", 24, "MD\\d{2}[A-Z0-9]{20}"),                  
// Moldova
             new Validator("ME", 22, "ME\\d{20}"),                             
// Montenegro
             new Validator("MK", 19, "MK\\d{5}[A-Z0-9]{10}\\d{2}"),            
// Macedonia
+            new Validator("MN", 20, "MN\\d{18}"),                             
// Mongolia, since Apr-23
             new Validator("MR", 27, "MR\\d{25}"),                             
// Mauritania
             new Validator("MT", 31, "MT\\d{2}[A-Z]{4}\\d{5}[A-Z0-9]{18}"),    
// Malta
             new Validator("MU", 30, "MU\\d{2}[A-Z]{4}\\d{19}[A-Z]{3}"),       
// Mauritius
+            new Validator("NI", 28, "NI\\d{2}[A-Z]{4}\\d{20}"),               
// Nicaragua, since Apr-23
             new Validator("NL", 18, "NL\\d{2}[A-Z]{4}\\d{10}"),               
// Netherlands (The)
             new Validator("NO", 15, "NO\\d{13}"),                             
// Norway
+            new Validator("OM", 23, "OM\\d{5}[A-Z0-9]{16}"),                  
// Oman, since Mar-24
             new Validator("PK", 24, "PK\\d{2}[A-Z]{4}[A-Z0-9]{16}"),          
// Pakistan
             new Validator("PL", 28, "PL\\d{26}"),                             
// Poland
             new Validator("PS", 29, "PS\\d{2}[A-Z]{4}[A-Z0-9]{21}"),          
// Palestine, State of
@@ -188,7 +192,7 @@ public class IBANValidator {
             new Validator("QA", 29, "QA\\d{2}[A-Z]{4}[A-Z0-9]{21}"),          
// Qatar
             new Validator("RO", 24, "RO\\d{2}[A-Z]{4}[A-Z0-9]{16}"),          
// Romania
             new Validator("RS", 22, "RS\\d{20}"),                             
// Serbia
-            new Validator("RU", 33, "RU\\d{31}"),                             
// Russia
+            new Validator("RU", 33, "RU\\d{16}[A-Z0-9]{15}"),                 
// Russia
             new Validator("SA", 24, "SA\\d{4}[A-Z0-9]{18}"),                  
// Saudi Arabia
             new Validator("SC", 31, "SC\\d{2}[A-Z]{4}\\d{20}[A-Z]{3}"),       
// Seychelles
             new Validator("SD", 18, "SD\\d{16}"),                             
// Sudan
@@ -196,6 +200,7 @@ public class IBANValidator {
             new Validator("SI", 19, "SI\\d{17}"),                             
// Slovenia
             new Validator("SK", 24, "SK\\d{22}"),                             
// Slovakia
             new Validator("SM", 27, "SM\\d{2}[A-Z]{1}\\d{10}[A-Z0-9]{12}"),   
// San Marino
+            new Validator("SO", 23, "SO\\d{21}"),                             
// Somalia, since Feb-23
             new Validator("ST", 25, "ST\\d{23}"),                             
// Sao Tome and Principe
             new Validator("SV", 28, "SV\\d{2}[A-Z]{4}\\d{20}"),               
// El Salvador
             new Validator("TL", 23, "TL\\d{21}"),                             
// Timor-Leste
diff --git 
a/src/test/java/org/apache/commons/validator/routines/IBANValidatorTest.java 
b/src/test/java/org/apache/commons/validator/routines/IBANValidatorTest.java
index e8449886..3e823fe7 100644
--- a/src/test/java/org/apache/commons/validator/routines/IBANValidatorTest.java
+++ b/src/test/java/org/apache/commons/validator/routines/IBANValidatorTest.java
@@ -90,6 +90,7 @@ public class IBANValidatorTest {
               // FI other
               "AX2112345600000785", // FI other
               "AX5542345670000081", // FI other
+            "FK88SC123456789012",
             "FO6264600001631634",
             "FR1420041010050500013M02606",
               // FR 'other'
@@ -137,11 +138,14 @@ public class IBANValidatorTest {
             "MD24AG000225100013104168",
             "ME25505000012345678951",
             "MK07250120000058984",
+            "MN121234123456789123",
             "MR1300020001010000123456753",
             "MT84MALT011000012345MTLCAST001S",
             "MU17BOMM0101101030300200000MUR",
+            "NI45BAPR00000013000003558124",
             "NL91ABNA0417164300",
             "NO9386011117947",
+            "OM810180000001299123456",
             "PK36SCBL0000001123456702",
             "PL61109010140000071219812874",
             "PS92PALS000000000400123456702",
@@ -158,6 +162,7 @@ public class IBANValidatorTest {
             "SI56263300012039086",
             "SK3112000000198742637541",
             "SM86U0322509800000000270100",
+            "SO211000001001000100141",
             "ST68000100010051845310112",
             "SV62CENR00000000000000700025",
             "SV43ACAT00000000000000123123",

Reply via email to