Comparing version 3.2.1 to 3.2.2
@@ -8,11 +8,10 @@ /*! | ||
* Validate IBAN | ||
* @example | ||
* ``` | ||
* // returns true | ||
* ibantools.isValidIBAN("NL91ABNA0517164300"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns false | ||
* ibantools.isValidIBAN("NL92ABNA0517164300"); | ||
* @alias module:ibantools.isValidIBAN | ||
* @param {string} IBAN IBAN | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
@@ -22,25 +21,23 @@ export declare function isValidIBAN(iban: string): boolean; | ||
* Validate BBAN | ||
* @example | ||
* | ||
* ``` | ||
* // returns true | ||
* ibantools.isValidBBAN("ABNA0517164300", "NL"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns false | ||
* ibantools.isValidBBAN("A7NA0517164300", "NL"); | ||
* @alias module:ibantools.isValidBBAN | ||
* @param {string} BBAN BBAN | ||
* @param {string} countryCode Country code | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
export declare function isValidBBAN(bban: string, countryCode: string): boolean; | ||
export declare function isValidBBAN(bban?: string, countryCode?: string): boolean; | ||
/** | ||
* Validate if country code is from a SEPA country | ||
* @example | ||
* ``` | ||
* // returns true | ||
* ibantools.isSEPACountry("NL"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns false | ||
* ibantools.isSEPACountry("PK"); | ||
* @alias module:ibantools.isSEPACountry | ||
* @param {string} countryCode Country code | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
@@ -51,3 +48,3 @@ export declare function isSEPACountry(countryCode: string): boolean; | ||
*/ | ||
export interface ComposeIBANParms { | ||
export interface ComposeIBANParams { | ||
countryCode?: string; | ||
@@ -58,10 +55,9 @@ bban?: string; | ||
* composeIBAN | ||
* @example | ||
* | ||
* ``` | ||
* // returns NL91ABNA0417164300 | ||
* ibantools.composeIBAN("NL", "ABNA0417164300"); | ||
* @alias module:ibantools.composeIBAN | ||
* @param {ComposeIBANParams} Object {bban: string, countryCode: string} | ||
* @result {string} IBAN IBAN | ||
* ``` | ||
*/ | ||
export declare function composeIBAN(params: ComposeIBANParms): string; | ||
export declare function composeIBAN(params: ComposeIBANParams): string | null; | ||
/** | ||
@@ -78,8 +74,6 @@ * Interface for ExtractIBAN result | ||
* extractIBAN | ||
* @example | ||
* ``` | ||
* // returns {iban: "NL91ABNA0417164300", bban: "ABNA0417164300", countryCode: "NL", valid: true} | ||
* ibantools.extractIBAN("NL91 ABNA 0417 1643 00"); | ||
* @alias module:ibantools.extractIBAN | ||
* @param {string} IBAN IBAN | ||
* @return {ExtractIBANResult} Object {iban: string, bban: string, countryCode: string, valid: boolean} | ||
* ``` | ||
*/ | ||
@@ -91,10 +85,8 @@ export declare function extractIBAN(iban: string): ExtractIBANResult; | ||
* When non-string value for IBAN is provided, returns null. | ||
* @example | ||
* ``` | ||
* // returns "NL91ABNA0417164300" | ||
* ibantools.electronicFormatIBAN("NL91 ABNA 0417 1643 00"); | ||
* @alias module:ibantools.electronicFormatIBAN | ||
* @param {string} IBAN IBAN | ||
* @return {string} IBAN Electronic formated IBAN | ||
* ``` | ||
*/ | ||
export declare function electronicFormatIBAN(iban: string): string; | ||
export declare function electronicFormatIBAN(iban?: string): string | null; | ||
/** | ||
@@ -104,20 +96,18 @@ * Get IBAN in friendly format (separated after every 4 characters) | ||
* When non-string value for IBAN is provided, returns null. | ||
* @example | ||
* ``` | ||
* // returns "NL91 ABNA 0417 1643 00" | ||
* ibantools.friendlyFormatIBAN("NL91ABNA0417164300"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns "NL91-ABNA-0417-1643-00" | ||
* ibantools.friendlyFormatIBAN("NL91ABNA0417164300","-"); | ||
* @alias module:ibantools.friendlyFormatIBAN | ||
* @param {string} IBAN IBAN | ||
* @param {string} separator Not required. Default separator is space " " | ||
* @return {string} IBAN Friendly formated IBAN | ||
* ``` | ||
*/ | ||
export declare function friendlyFormatIBAN(iban: string, separator?: string): string; | ||
export declare function friendlyFormatIBAN(iban?: string, separator?: string): string | null; | ||
/** | ||
* getCountrySpecifications | ||
* Returns specifications for all countries, even those who are not | ||
* members of IBAN registry. `IBANRegistry` field indicates if country | ||
* is member of not. | ||
* @example | ||
* | ||
* ``` | ||
* // Validating IBAN form field after user selects his country | ||
@@ -137,4 +127,3 @@ * // <select id="countries"> | ||
* }); | ||
* @alias module:ibantools.getCountrySpecifications | ||
* @return {CountryMap} Object [countryCode: string]CountrySpec -> {chars: :number, bban_regexp: string, IBANRegistry: boolean, SEPA: boolean} | ||
* ``` | ||
*/ | ||
@@ -144,17 +133,16 @@ export declare function getCountrySpecifications(): CountryMap; | ||
* Validate BIC/SWIFT | ||
* @example | ||
* | ||
* ``` | ||
* // returns true | ||
* ibantools.isValidBIC("ABNANL2A"); | ||
* @example | ||
* | ||
* // returns true | ||
* ibantools.isValidBIC("NEDSZAJJXXX"); | ||
* @example | ||
* | ||
* // returns false | ||
* ibantools.isValidBIC("ABN4NL2A"); | ||
* @example | ||
* | ||
* // returns false | ||
* ibantools.isValidBIC("ABNA NL 2A"); | ||
* @alias module:ibantools.isValidBIC | ||
* @param {string} BIC BIC | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
@@ -175,8 +163,6 @@ export declare function isValidBIC(bic: string): boolean; | ||
* extractBIC | ||
* @example | ||
* ``` | ||
* // returns {bankCode: "ABNA", countryCode: "NL", locationCode: "2A", branchCode: null, testBIC: flase, valid: true} | ||
* ibantools.extractBIC("ABNANL2A"); | ||
* @alias module:ibantools.extractBIC | ||
* @param {string} BIC BIC | ||
* @return {ExtractBICResult} Object {bancCode: string, countryCode: string, locationCode: string, branchCode: string, testBIC: boolean, valid: boolean} | ||
* ``` | ||
*/ | ||
@@ -188,4 +174,4 @@ export declare function extractBIC(inputBic: string): ExtractBICResult; | ||
export interface CountrySpec { | ||
chars: number; | ||
bban_regexp: string; | ||
chars: number | null; | ||
bban_regexp: string | null; | ||
IBANRegistry: boolean; | ||
@@ -192,0 +178,0 @@ SEPA: boolean; |
@@ -7,10 +7,11 @@ /*! | ||
/** | ||
* @file Validation, extraction and creation of IBAN, BBAN, BIC/SWIFT numbers plus some other helpful stuff | ||
* Validation, extraction and creation of IBAN, BBAN, BIC/SWIFT numbers plus some other helpful stuff | ||
* @packageDocumentation | ||
* @author Saša Jovanić | ||
* @module ibantools | ||
* @see module:ibantools | ||
* @version 3.2.0 | ||
* @version 3.2.2 | ||
* @license MPL-2.0 | ||
* @preferred | ||
*/ | ||
"use strict"; | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -20,17 +21,17 @@ exports.extractBIC = exports.isValidBIC = exports.getCountrySpecifications = exports.friendlyFormatIBAN = exports.electronicFormatIBAN = exports.extractIBAN = exports.composeIBAN = exports.isSEPACountry = exports.isValidBBAN = exports.isValidIBAN = void 0; | ||
* Validate IBAN | ||
* @example | ||
* ``` | ||
* // returns true | ||
* ibantools.isValidIBAN("NL91ABNA0517164300"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns false | ||
* ibantools.isValidIBAN("NL92ABNA0517164300"); | ||
* @alias module:ibantools.isValidIBAN | ||
* @param {string} IBAN IBAN | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
function isValidIBAN(iban) { | ||
if (iban !== undefined && iban !== null) { | ||
var reg = new RegExp("^[0-9]{2}$", ""); | ||
var reg = new RegExp('^[0-9]{2}$', ''); | ||
var spec = countrySpecs[iban.slice(0, 2)]; | ||
if (spec !== undefined && | ||
spec.bban_regexp !== null && | ||
spec.chars === iban.length && | ||
@@ -48,20 +49,19 @@ reg.test(iban.slice(2, 4)) && | ||
* Validate BBAN | ||
* @example | ||
* | ||
* ``` | ||
* // returns true | ||
* ibantools.isValidBBAN("ABNA0517164300", "NL"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns false | ||
* ibantools.isValidBBAN("A7NA0517164300", "NL"); | ||
* @alias module:ibantools.isValidBBAN | ||
* @param {string} BBAN BBAN | ||
* @param {string} countryCode Country code | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
function isValidBBAN(bban, countryCode) { | ||
if (bban !== undefined && | ||
bban !== null && | ||
countryCode !== undefined && | ||
countryCode !== null) { | ||
if (bban !== undefined && bban !== null && countryCode !== undefined && countryCode !== null) { | ||
var spec = countrySpecs[countryCode]; | ||
if (spec !== undefined && | ||
spec !== null && | ||
spec.chars !== null && | ||
spec.bban_regexp !== null && | ||
spec.chars - 4 === bban.length && | ||
@@ -77,11 +77,10 @@ checkFormatBBAN(bban, spec.bban_regexp)) { | ||
* Validate if country code is from a SEPA country | ||
* @example | ||
* ``` | ||
* // returns true | ||
* ibantools.isSEPACountry("NL"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns false | ||
* ibantools.isSEPACountry("PK"); | ||
* @alias module:ibantools.isSEPACountry | ||
* @param {string} countryCode Country code | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
@@ -100,18 +99,22 @@ function isSEPACountry(countryCode) { | ||
* composeIBAN | ||
* @example | ||
* | ||
* ``` | ||
* // returns NL91ABNA0417164300 | ||
* ibantools.composeIBAN("NL", "ABNA0417164300"); | ||
* @alias module:ibantools.composeIBAN | ||
* @param {ComposeIBANParams} Object {bban: string, countryCode: string} | ||
* @result {string} IBAN IBAN | ||
* ``` | ||
*/ | ||
function composeIBAN(params) { | ||
var bban = electronicFormatIBAN(params.bban); | ||
var formated_bban = electronicFormatIBAN(params.bban) || ''; | ||
if (params.countryCode === null || params.countryCode === undefined) { | ||
return null; | ||
} | ||
var spec = countrySpecs[params.countryCode]; | ||
if (bban !== null && | ||
if (formated_bban !== '' && | ||
spec !== undefined && | ||
spec.chars === bban.length + 4 && | ||
checkFormatBBAN(bban, spec.bban_regexp)) { | ||
var checksom = mod9710(params.countryCode + "00" + bban); | ||
return params.countryCode + ("0" + (98 - checksom)).slice(-2) + bban; | ||
spec.chars !== null && | ||
spec.chars === formated_bban.length + 4 && | ||
spec.bban_regexp !== null && | ||
checkFormatBBAN(formated_bban, spec.bban_regexp)) { | ||
var checksom = mod9710(params.countryCode + '00' + formated_bban); | ||
return params.countryCode + ('0' + (98 - checksom)).slice(-2) + formated_bban; | ||
} | ||
@@ -123,8 +126,6 @@ return null; | ||
* extractIBAN | ||
* @example | ||
* ``` | ||
* // returns {iban: "NL91ABNA0417164300", bban: "ABNA0417164300", countryCode: "NL", valid: true} | ||
* ibantools.extractIBAN("NL91 ABNA 0417 1643 00"); | ||
* @alias module:ibantools.extractIBAN | ||
* @param {string} IBAN IBAN | ||
* @return {ExtractIBANResult} Object {iban: string, bban: string, countryCode: string, valid: boolean} | ||
* ``` | ||
*/ | ||
@@ -147,8 +148,7 @@ function extractIBAN(iban) { | ||
* Check BBAN format | ||
* @param {string} BBAN | ||
* @param {string} Regexp BBAN validation regexp | ||
* @return {boolean} valid | ||
* | ||
* @ignore | ||
*/ | ||
function checkFormatBBAN(bban, bformat) { | ||
var reg = new RegExp(bformat, ""); | ||
var reg = new RegExp(bformat, ''); | ||
return reg.test(bban); | ||
@@ -160,14 +160,12 @@ } | ||
* When non-string value for IBAN is provided, returns null. | ||
* @example | ||
* ``` | ||
* // returns "NL91ABNA0417164300" | ||
* ibantools.electronicFormatIBAN("NL91 ABNA 0417 1643 00"); | ||
* @alias module:ibantools.electronicFormatIBAN | ||
* @param {string} IBAN IBAN | ||
* @return {string} IBAN Electronic formated IBAN | ||
* ``` | ||
*/ | ||
function electronicFormatIBAN(iban) { | ||
if (typeof iban !== "string") { | ||
if (typeof iban !== 'string') { | ||
return null; | ||
} | ||
return iban.replace(/[-\ ]/g, "").toUpperCase(); | ||
return iban.replace(/[-\ ]/g, '').toUpperCase(); | ||
} | ||
@@ -179,32 +177,34 @@ exports.electronicFormatIBAN = electronicFormatIBAN; | ||
* When non-string value for IBAN is provided, returns null. | ||
* @example | ||
* ``` | ||
* // returns "NL91 ABNA 0417 1643 00" | ||
* ibantools.friendlyFormatIBAN("NL91ABNA0417164300"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns "NL91-ABNA-0417-1643-00" | ||
* ibantools.friendlyFormatIBAN("NL91ABNA0417164300","-"); | ||
* @alias module:ibantools.friendlyFormatIBAN | ||
* @param {string} IBAN IBAN | ||
* @param {string} separator Not required. Default separator is space " " | ||
* @return {string} IBAN Friendly formated IBAN | ||
* ``` | ||
*/ | ||
function friendlyFormatIBAN(iban, separator) { | ||
if (typeof iban !== "string") { | ||
if (typeof iban !== 'string') { | ||
return null; | ||
} | ||
if (typeof separator === "undefined") { | ||
separator = " "; | ||
if (separator === undefined || separator === null) { | ||
separator = ' '; | ||
} | ||
return electronicFormatIBAN(iban).replace(/(.{4})(?!$)/g, "$1" + separator); | ||
var electronic_iban = electronicFormatIBAN(iban); | ||
if (electronic_iban === null) { | ||
return null; | ||
} | ||
return electronic_iban.replace(/(.{4})(?!$)/g, '$1' + separator); | ||
} | ||
exports.friendlyFormatIBAN = friendlyFormatIBAN; | ||
/** | ||
* Calculate checksum of IBAN and compares it with checksum provided in IBANregistry | ||
* @param {string} IBAN | ||
* @return {boolean} | ||
* Calculate checksum of IBAN and compares it with checksum provided in IBAN Registry | ||
* | ||
* @ignore | ||
*/ | ||
function isValidIBANChecksum(iban) { | ||
var providedChecksum = parseInt(iban.slice(2, 4), 10); | ||
var temp = iban.slice(3) + iban.slice(0, 2) + "00"; | ||
var validationString = ""; | ||
var temp = iban.slice(3) + iban.slice(0, 2) + '00'; | ||
var validationString = ''; | ||
for (var n = 1; n < temp.length; n++) { | ||
@@ -221,5 +221,3 @@ var c = temp.charCodeAt(n); | ||
var part = validationString.slice(0, 6); | ||
validationString = | ||
(parseInt(part, 10) % 97).toString() + | ||
validationString.slice(part.length); | ||
validationString = (parseInt(part, 10) % 97).toString() + validationString.slice(part.length); | ||
} | ||
@@ -231,8 +229,8 @@ var rest = parseInt(validationString, 10) % 97; | ||
* MOD-97-10 | ||
* @param {string} | ||
* @return {number} | ||
* | ||
* @ignore | ||
*/ | ||
function mod9710(iban) { | ||
iban = iban.slice(3) + iban.slice(0, 4); | ||
var validationString = ""; | ||
var validationString = ''; | ||
for (var n = 1; n < iban.length; n++) { | ||
@@ -249,5 +247,3 @@ var c = iban.charCodeAt(n); | ||
var part = validationString.slice(0, 6); | ||
validationString = | ||
(parseInt(part, 10) % 97).toString() + | ||
validationString.slice(part.length); | ||
validationString = (parseInt(part, 10) % 97).toString() + validationString.slice(part.length); | ||
} | ||
@@ -257,7 +253,7 @@ return parseInt(validationString, 10) % 97; | ||
/** | ||
* getCountrySpecifications | ||
* Returns specifications for all countries, even those who are not | ||
* members of IBAN registry. `IBANRegistry` field indicates if country | ||
* is member of not. | ||
* @example | ||
* | ||
* ``` | ||
* // Validating IBAN form field after user selects his country | ||
@@ -277,4 +273,3 @@ * // <select id="countries"> | ||
* }); | ||
* @alias module:ibantools.getCountrySpecifications | ||
* @return {CountryMap} Object [countryCode: string]CountrySpec -> {chars: :number, bban_regexp: string, IBANRegistry: boolean, SEPA: boolean} | ||
* ``` | ||
*/ | ||
@@ -287,17 +282,16 @@ function getCountrySpecifications() { | ||
* Validate BIC/SWIFT | ||
* @example | ||
* | ||
* ``` | ||
* // returns true | ||
* ibantools.isValidBIC("ABNANL2A"); | ||
* @example | ||
* | ||
* // returns true | ||
* ibantools.isValidBIC("NEDSZAJJXXX"); | ||
* @example | ||
* | ||
* // returns false | ||
* ibantools.isValidBIC("ABN4NL2A"); | ||
* @example | ||
* | ||
* // returns false | ||
* ibantools.isValidBIC("ABNA NL 2A"); | ||
* @alias module:ibantools.isValidBIC | ||
* @param {string} BIC BIC | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
@@ -308,3 +302,3 @@ function isValidBIC(bic) { | ||
} | ||
var reg = new RegExp("^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$", ""); | ||
var reg = new RegExp('^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$', ''); | ||
var spec = countrySpecs[bic.toUpperCase().slice(4, 6)]; | ||
@@ -316,8 +310,6 @@ return reg.test(bic) && spec !== undefined; | ||
* extractBIC | ||
* @example | ||
* ``` | ||
* // returns {bankCode: "ABNA", countryCode: "NL", locationCode: "2A", branchCode: null, testBIC: flase, valid: true} | ||
* ibantools.extractBIC("ABNANL2A"); | ||
* @alias module:ibantools.extractBIC | ||
* @param {string} BIC BIC | ||
* @return {ExtractBICResult} Object {bancCode: string, countryCode: string, locationCode: string, branchCode: string, testBIC: boolean, valid: boolean} | ||
* ``` | ||
*/ | ||
@@ -331,4 +323,4 @@ function extractBIC(inputBic) { | ||
result.locationCode = bic.slice(6, 8); | ||
result.testBIC = result.locationCode[1] === "0" ? true : false; | ||
result.branchCode = bic.length > 8 ? bic.slice(8) : "619"; | ||
result.testBIC = result.locationCode[1] === '0' ? true : false; | ||
result.branchCode = bic.length > 8 ? bic.slice(8) : '619'; | ||
result.valid = true; | ||
@@ -342,15 +334,18 @@ } | ||
exports.extractBIC = extractBIC; | ||
// Country specifications | ||
/** | ||
* Country specifications | ||
* @ignore | ||
*/ | ||
var countrySpecs = { | ||
AD: { | ||
chars: 24, | ||
bban_regexp: "^[0-9]{8}[A-Z0-9]{12}$", | ||
bban_regexp: '^[0-9]{8}[A-Z0-9]{12}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
AE: { | ||
chars: 23, | ||
bban_regexp: "^[0-9]{3}[0-9]{16}$", | ||
bban_regexp: '^[0-9]{3}[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -362,5 +357,5 @@ AF: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[0-9]{8}[A-Z0-9]{16}$", | ||
bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -370,5 +365,5 @@ AM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 25, | ||
bban_regexp: "^[0-9]{21}$", | ||
bban_regexp: '^[0-9]{21}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -378,3 +373,3 @@ AQ: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
AS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
AT: { chars: 20, bban_regexp: "^[0-9]{16}$", IBANRegistry: true, SEPA: true }, | ||
AT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true }, | ||
AU: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -384,56 +379,56 @@ AW: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 18, | ||
bban_regexp: "^[0-9]{14}$", | ||
bban_regexp: '^[0-9]{14}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
AZ: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{20}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{20}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BA: { | ||
chars: 20, | ||
bban_regexp: "^[0-9]{16}$", | ||
bban_regexp: '^[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BB: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
BD: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
BE: { chars: 16, bban_regexp: "^[0-9]{12}$", IBANRegistry: true, SEPA: true }, | ||
BE: { chars: 16, bban_regexp: '^[0-9]{12}$', IBANRegistry: true, SEPA: true }, | ||
BF: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BG: { | ||
chars: 22, | ||
bban_regexp: "^[A-Z]{4}[0-9]{6}[A-Z0-9]{8}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{6}[A-Z0-9]{8}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
BH: { | ||
chars: 22, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{14}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{14}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BI: { | ||
chars: 16, | ||
bban_regexp: "^[0-9]{12}$", | ||
bban_regexp: '^[0-9]{12}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BJ: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{1}[0-9]{23}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BL: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -446,5 +441,5 @@ BM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 29, | ||
bban_regexp: "^[0-9]{23}[A-Z]{1}[A-Z0-9]{1}$", | ||
bban_regexp: '^[0-9]{23}[A-Z]{1}[A-Z0-9]{1}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -457,5 +452,5 @@ BS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{4}[0-9]{4}[A-Z0-9]{16}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -468,23 +463,23 @@ BZ: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
CG: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
CH: { | ||
chars: 21, | ||
bban_regexp: "^[0-9]{5}[A-Z0-9]{12}$", | ||
bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
CI: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{1}[0-9]{23}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -495,5 +490,5 @@ CK: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -504,8 +499,8 @@ CN: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 22, | ||
bban_regexp: "^[0-9]{18}$", | ||
bban_regexp: '^[0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
CU: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
CV: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
CV: { chars: 25, bban_regexp: '^[0-9]{21}$', IBANRegistry: false, SEPA: false }, | ||
CW: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -515,57 +510,57 @@ CX: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[0-9]{8}[A-Z0-9]{16}$", | ||
bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
CZ: { chars: 24, bban_regexp: "^[0-9]{20}$", IBANRegistry: true, SEPA: true }, | ||
DE: { chars: 22, bban_regexp: "^[0-9]{18}$", IBANRegistry: true, SEPA: true }, | ||
CZ: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true }, | ||
DE: { chars: 22, bban_regexp: '^[0-9]{18}$', IBANRegistry: true, SEPA: true }, | ||
DJ: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
DK: { chars: 18, bban_regexp: "^[0-9]{14}$", IBANRegistry: true, SEPA: true }, | ||
DK: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true, SEPA: true }, | ||
DM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
DO: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{4}[0-9]{20}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{20}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
DZ: { | ||
chars: 24, | ||
bban_regexp: "^[0-9]{20}$", | ||
bban_regexp: '^[0-9]{20}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
EC: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
EE: { chars: 20, bban_regexp: "^[0-9]{16}$", IBANRegistry: true, SEPA: true }, | ||
EG: { chars: 29, bban_regexp: "^[0-9]{25}", IBANRegistry: true, SEPA: false }, | ||
EE: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true }, | ||
EG: { chars: 29, bban_regexp: '^[0-9]{25}', IBANRegistry: true, SEPA: false }, | ||
EH: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
ER: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
ES: { chars: 24, bban_regexp: "^[0-9]{20}$", IBANRegistry: true, SEPA: true }, | ||
ES: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true }, | ||
ET: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
FI: { chars: 18, bban_regexp: "^[0-9]{14}$", IBANRegistry: true, SEPA: true }, | ||
FI: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true, SEPA: true }, | ||
FJ: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
FK: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
FM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
FO: { chars: 18, bban_regexp: "^[0-9]{14}$", IBANRegistry: true, SEPA: true }, | ||
FO: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true, SEPA: true }, | ||
FR: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
GA: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
GB: { | ||
chars: 22, | ||
bban_regexp: "^[A-Z]{4}[0-9]{14}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{14}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
@@ -575,11 +570,11 @@ GD: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 22, | ||
bban_regexp: "^[A-Z0-9]{2}[0-9]{16}$", | ||
bban_regexp: '^[A-Z0-9]{2}[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
GF: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -590,7 +585,7 @@ GG: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 23, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{15}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{15}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
GL: { chars: 18, bban_regexp: "^[0-9]{14}$", IBANRegistry: true, SEPA: true }, | ||
GL: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true, SEPA: true }, | ||
GM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -600,17 +595,17 @@ GN: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
GQ: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
GR: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{7}[A-Z0-9]{16}$", | ||
bban_regexp: '^[0-9]{7}[A-Z0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
@@ -620,5 +615,5 @@ GS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[A-Z0-9]{24}$", | ||
bban_regexp: '^[A-Z0-9]{24}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -628,5 +623,5 @@ GU: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 25, | ||
bban_regexp: "^[A-Z]{2}[0-9]{19}$", | ||
bban_regexp: '^[A-Z]{2}[0-9]{19}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -638,21 +633,21 @@ GY: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{4}[0-9]{20}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{20}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
HR: { chars: 21, bban_regexp: "^[0-9]{17}$", IBANRegistry: true, SEPA: true }, | ||
HR: { chars: 21, bban_regexp: '^[0-9]{17}$', IBANRegistry: true, SEPA: true }, | ||
HT: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
HU: { chars: 28, bban_regexp: "^[0-9]{24}$", IBANRegistry: true, SEPA: true }, | ||
HU: { chars: 28, bban_regexp: '^[0-9]{24}$', IBANRegistry: true, SEPA: true }, | ||
ID: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
IE: { | ||
chars: 22, | ||
bban_regexp: "^[A-Z0-9]{4}[0-9]{14}$", | ||
bban_regexp: '^[A-Z0-9]{4}[0-9]{14}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
IL: { | ||
chars: 23, | ||
bban_regexp: "^[0-9]{19}$", | ||
bban_regexp: '^[0-9]{19}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -664,18 +659,18 @@ IM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 23, | ||
bban_regexp: "^[A-Z]{4}[0-9]{15}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{15}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
IR: { | ||
chars: 26, | ||
bban_regexp: "^[0-9]{22}$", | ||
bban_regexp: '^[0-9]{22}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
IS: { chars: 26, bban_regexp: "^[0-9]{22}$", IBANRegistry: true, SEPA: true }, | ||
IS: { chars: 26, bban_regexp: '^[0-9]{22}$', IBANRegistry: true, SEPA: true }, | ||
IT: { | ||
chars: 27, | ||
bban_regexp: "^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
@@ -686,5 +681,5 @@ JE: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 30, | ||
bban_regexp: "^[A-Z]{4}[0-9]{4}[A-Z0-9]{18}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -698,5 +693,5 @@ JP: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -708,5 +703,5 @@ KN: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 30, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{22}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{22}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -716,5 +711,5 @@ KY: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 20, | ||
bban_regexp: "^[0-9]{3}[A-Z0-9]{13}$", | ||
bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -724,17 +719,17 @@ LA: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[0-9]{4}[A-Z0-9]{20}$", | ||
bban_regexp: '^[0-9]{4}[A-Z0-9]{20}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
LC: { | ||
chars: 32, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{24}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{24}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
LI: { | ||
chars: 21, | ||
bban_regexp: "^[0-9]{5}[A-Z0-9]{12}$", | ||
bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
@@ -744,56 +739,56 @@ LK: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
LS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
LT: { chars: 20, bban_regexp: "^[0-9]{16}$", IBANRegistry: true, SEPA: true }, | ||
LT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true }, | ||
LU: { | ||
chars: 20, | ||
bban_regexp: "^[0-9]{3}[A-Z0-9]{13}$", | ||
bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
LV: { | ||
chars: 21, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{13}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{13}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
LY: { | ||
chars: 25, | ||
bban_regexp: "^[0-9]{21}$", | ||
bban_regexp: '^[0-9]{21}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
MA: { | ||
chars: 28, | ||
bban_regexp: "^[0-9]{24}$", | ||
bban_regexp: '^[0-9]{24}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
MC: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
MD: { | ||
chars: 24, | ||
bban_regexp: "^[A-Z0-9]{2}[A-Z0-9]{18}$", | ||
bban_regexp: '^[A-Z0-9]{2}[A-Z0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
ME: { | ||
chars: 22, | ||
bban_regexp: "^[0-9]{18}$", | ||
bban_regexp: '^[0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
MF: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
MG: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -803,11 +798,11 @@ MH: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 19, | ||
bban_regexp: "^[0-9]{3}[A-Z0-9]{10}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{3}[A-Z0-9]{10}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
ML: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{1}[0-9]{23}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -820,11 +815,11 @@ MM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
MR: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -834,11 +829,11 @@ MS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 31, | ||
bban_regexp: "^[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
MU: { | ||
chars: 30, | ||
bban_regexp: "^[A-Z]{4}[0-9]{19}[A-Z]{3}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{19}[A-Z]{3}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -851,5 +846,5 @@ MV: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 25, | ||
bban_regexp: "^[0-9]{21}$", | ||
bban_regexp: '^[0-9]{21}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -859,11 +854,11 @@ NA: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
NE: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{2}[0-9]{22}$", | ||
bban_regexp: '^[A-Z]{2}[0-9]{22}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -874,13 +869,13 @@ NF: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 32, | ||
bban_regexp: "^[A-Z]{4}[0-9]{24}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{24}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
NL: { | ||
chars: 18, | ||
bban_regexp: "^[A-Z]{4}[0-9]{10}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{10}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
NO: { chars: 15, bban_regexp: "^[0-9]{11}$", IBANRegistry: true, SEPA: true }, | ||
NO: { chars: 15, bban_regexp: '^[0-9]{11}$', IBANRegistry: true, SEPA: true }, | ||
NP: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -895,5 +890,5 @@ NR: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -904,12 +899,12 @@ PG: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 24, | ||
bban_regexp: "^[A-Z0-9]{4}[0-9]{16}$", | ||
bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
PL: { chars: 28, bban_regexp: "^[0-9]{24}$", IBANRegistry: true, SEPA: true }, | ||
PL: { chars: 28, bban_regexp: '^[0-9]{24}$', IBANRegistry: true, SEPA: true }, | ||
PM: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -920,7 +915,7 @@ PN: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 29, | ||
bban_regexp: "^[A-Z0-9]{4}[0-9]{21}$", | ||
bban_regexp: '^[A-Z0-9]{4}[0-9]{21}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
PT: { chars: 25, bban_regexp: "^[0-9]{21}$", IBANRegistry: true, SEPA: true }, | ||
PT: { chars: 25, bban_regexp: '^[0-9]{21}$', IBANRegistry: true, SEPA: true }, | ||
PW: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -930,23 +925,23 @@ PY: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 29, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{21}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{21}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
RE: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
RO: { | ||
chars: 24, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{16}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
RS: { | ||
chars: 22, | ||
bban_regexp: "^[0-9]{18}$", | ||
bban_regexp: '^[0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -957,5 +952,5 @@ RU: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 24, | ||
bban_regexp: "^[0-9]{2}[A-Z0-9]{18}$", | ||
bban_regexp: '^[0-9]{2}[A-Z0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -965,25 +960,25 @@ SB: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 31, | ||
bban_regexp: "^[A-Z]{4}[0-9]{20}[A-Z]{3}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{20}[A-Z]{3}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
SD: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
SE: { chars: 24, bban_regexp: "^[0-9]{20}$", IBANRegistry: true, SEPA: true }, | ||
SE: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true }, | ||
SG: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
SH: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
SI: { chars: 19, bban_regexp: "^[0-9]{15}$", IBANRegistry: true, SEPA: true }, | ||
SI: { chars: 19, bban_regexp: '^[0-9]{15}$', IBANRegistry: true, SEPA: true }, | ||
SJ: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
SK: { chars: 24, bban_regexp: "^[0-9]{20}$", IBANRegistry: true, SEPA: true }, | ||
SK: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true }, | ||
SL: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
SM: { | ||
chars: 27, | ||
bban_regexp: "^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
SN: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{1}[0-9]{23}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -995,11 +990,11 @@ SO: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 25, | ||
bban_regexp: "^[0-9]{21}$", | ||
bban_regexp: '^[0-9]{21}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
SV: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{4}[0-9]{20}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{20}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1012,17 +1007,17 @@ SX: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
TF: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
TG: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{2}[0-9]{22}$", | ||
bban_regexp: '^[A-Z]{2}[0-9]{22}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1034,5 +1029,5 @@ TH: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 23, | ||
bban_regexp: "^[0-9]{19}$", | ||
bban_regexp: '^[0-9]{19}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1042,5 +1037,5 @@ TM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 24, | ||
bban_regexp: "^[0-9]{20}$", | ||
bban_regexp: '^[0-9]{20}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1050,5 +1045,5 @@ TO: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 26, | ||
bban_regexp: "^[0-9]{5}[A-Z0-9]{17}$", | ||
bban_regexp: '^[0-9]{5}[A-Z0-9]{17}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1061,5 +1056,5 @@ TT: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 29, | ||
bban_regexp: "^[0-9]{6}[A-Z0-9]{19}$", | ||
bban_regexp: '^[0-9]{6}[A-Z0-9]{19}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1071,3 +1066,3 @@ UG: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
UZ: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
VA: { chars: 22, bban_regexp: "^[0-9]{18}", IBANRegistry: true, SEPA: false }, | ||
VA: { chars: 22, bban_regexp: '^[0-9]{18}', IBANRegistry: true, SEPA: false }, | ||
VC: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -1077,5 +1072,5 @@ VE: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 24, | ||
bban_regexp: "^[A-Z0-9]{4}[0-9]{16}$", | ||
bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1087,5 +1082,5 @@ VI: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1095,5 +1090,5 @@ WS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 20, | ||
bban_regexp: "^[0-9]{16}$", | ||
bban_regexp: '^[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1103,9 +1098,9 @@ YE: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
ZA: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
ZM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
ZW: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false } | ||
ZW: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
}; |
@@ -7,27 +7,28 @@ /*! | ||
/** | ||
* @file Validation, extraction and creation of IBAN, BBAN, BIC/SWIFT numbers plus some other helpful stuff | ||
* Validation, extraction and creation of IBAN, BBAN, BIC/SWIFT numbers plus some other helpful stuff | ||
* @packageDocumentation | ||
* @author Saša Jovanić | ||
* @module ibantools | ||
* @see module:ibantools | ||
* @version 3.2.0 | ||
* @version 3.2.2 | ||
* @license MPL-2.0 | ||
* @preferred | ||
*/ | ||
"use strict"; | ||
'use strict'; | ||
/** | ||
* Validate IBAN | ||
* @example | ||
* ``` | ||
* // returns true | ||
* ibantools.isValidIBAN("NL91ABNA0517164300"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns false | ||
* ibantools.isValidIBAN("NL92ABNA0517164300"); | ||
* @alias module:ibantools.isValidIBAN | ||
* @param {string} IBAN IBAN | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
export function isValidIBAN(iban) { | ||
if (iban !== undefined && iban !== null) { | ||
var reg = new RegExp("^[0-9]{2}$", ""); | ||
var reg = new RegExp('^[0-9]{2}$', ''); | ||
var spec = countrySpecs[iban.slice(0, 2)]; | ||
if (spec !== undefined && | ||
spec.bban_regexp !== null && | ||
spec.chars === iban.length && | ||
@@ -44,20 +45,19 @@ reg.test(iban.slice(2, 4)) && | ||
* Validate BBAN | ||
* @example | ||
* | ||
* ``` | ||
* // returns true | ||
* ibantools.isValidBBAN("ABNA0517164300", "NL"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns false | ||
* ibantools.isValidBBAN("A7NA0517164300", "NL"); | ||
* @alias module:ibantools.isValidBBAN | ||
* @param {string} BBAN BBAN | ||
* @param {string} countryCode Country code | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
export function isValidBBAN(bban, countryCode) { | ||
if (bban !== undefined && | ||
bban !== null && | ||
countryCode !== undefined && | ||
countryCode !== null) { | ||
if (bban !== undefined && bban !== null && countryCode !== undefined && countryCode !== null) { | ||
var spec = countrySpecs[countryCode]; | ||
if (spec !== undefined && | ||
spec !== null && | ||
spec.chars !== null && | ||
spec.bban_regexp !== null && | ||
spec.chars - 4 === bban.length && | ||
@@ -72,11 +72,10 @@ checkFormatBBAN(bban, spec.bban_regexp)) { | ||
* Validate if country code is from a SEPA country | ||
* @example | ||
* ``` | ||
* // returns true | ||
* ibantools.isSEPACountry("NL"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns false | ||
* ibantools.isSEPACountry("PK"); | ||
* @alias module:ibantools.isSEPACountry | ||
* @param {string} countryCode Country code | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
@@ -94,18 +93,22 @@ export function isSEPACountry(countryCode) { | ||
* composeIBAN | ||
* @example | ||
* | ||
* ``` | ||
* // returns NL91ABNA0417164300 | ||
* ibantools.composeIBAN("NL", "ABNA0417164300"); | ||
* @alias module:ibantools.composeIBAN | ||
* @param {ComposeIBANParams} Object {bban: string, countryCode: string} | ||
* @result {string} IBAN IBAN | ||
* ``` | ||
*/ | ||
export function composeIBAN(params) { | ||
var bban = electronicFormatIBAN(params.bban); | ||
var formated_bban = electronicFormatIBAN(params.bban) || ''; | ||
if (params.countryCode === null || params.countryCode === undefined) { | ||
return null; | ||
} | ||
var spec = countrySpecs[params.countryCode]; | ||
if (bban !== null && | ||
if (formated_bban !== '' && | ||
spec !== undefined && | ||
spec.chars === bban.length + 4 && | ||
checkFormatBBAN(bban, spec.bban_regexp)) { | ||
var checksom = mod9710(params.countryCode + "00" + bban); | ||
return params.countryCode + ("0" + (98 - checksom)).slice(-2) + bban; | ||
spec.chars !== null && | ||
spec.chars === formated_bban.length + 4 && | ||
spec.bban_regexp !== null && | ||
checkFormatBBAN(formated_bban, spec.bban_regexp)) { | ||
var checksom = mod9710(params.countryCode + '00' + formated_bban); | ||
return params.countryCode + ('0' + (98 - checksom)).slice(-2) + formated_bban; | ||
} | ||
@@ -116,8 +119,6 @@ return null; | ||
* extractIBAN | ||
* @example | ||
* ``` | ||
* // returns {iban: "NL91ABNA0417164300", bban: "ABNA0417164300", countryCode: "NL", valid: true} | ||
* ibantools.extractIBAN("NL91 ABNA 0417 1643 00"); | ||
* @alias module:ibantools.extractIBAN | ||
* @param {string} IBAN IBAN | ||
* @return {ExtractIBANResult} Object {iban: string, bban: string, countryCode: string, valid: boolean} | ||
* ``` | ||
*/ | ||
@@ -139,8 +140,7 @@ export function extractIBAN(iban) { | ||
* Check BBAN format | ||
* @param {string} BBAN | ||
* @param {string} Regexp BBAN validation regexp | ||
* @return {boolean} valid | ||
* | ||
* @ignore | ||
*/ | ||
function checkFormatBBAN(bban, bformat) { | ||
var reg = new RegExp(bformat, ""); | ||
var reg = new RegExp(bformat, ''); | ||
return reg.test(bban); | ||
@@ -152,14 +152,12 @@ } | ||
* When non-string value for IBAN is provided, returns null. | ||
* @example | ||
* ``` | ||
* // returns "NL91ABNA0417164300" | ||
* ibantools.electronicFormatIBAN("NL91 ABNA 0417 1643 00"); | ||
* @alias module:ibantools.electronicFormatIBAN | ||
* @param {string} IBAN IBAN | ||
* @return {string} IBAN Electronic formated IBAN | ||
* ``` | ||
*/ | ||
export function electronicFormatIBAN(iban) { | ||
if (typeof iban !== "string") { | ||
if (typeof iban !== 'string') { | ||
return null; | ||
} | ||
return iban.replace(/[-\ ]/g, "").toUpperCase(); | ||
return iban.replace(/[-\ ]/g, '').toUpperCase(); | ||
} | ||
@@ -170,31 +168,33 @@ /** | ||
* When non-string value for IBAN is provided, returns null. | ||
* @example | ||
* ``` | ||
* // returns "NL91 ABNA 0417 1643 00" | ||
* ibantools.friendlyFormatIBAN("NL91ABNA0417164300"); | ||
* @example | ||
* ``` | ||
* ``` | ||
* // returns "NL91-ABNA-0417-1643-00" | ||
* ibantools.friendlyFormatIBAN("NL91ABNA0417164300","-"); | ||
* @alias module:ibantools.friendlyFormatIBAN | ||
* @param {string} IBAN IBAN | ||
* @param {string} separator Not required. Default separator is space " " | ||
* @return {string} IBAN Friendly formated IBAN | ||
* ``` | ||
*/ | ||
export function friendlyFormatIBAN(iban, separator) { | ||
if (typeof iban !== "string") { | ||
if (typeof iban !== 'string') { | ||
return null; | ||
} | ||
if (typeof separator === "undefined") { | ||
separator = " "; | ||
if (separator === undefined || separator === null) { | ||
separator = ' '; | ||
} | ||
return electronicFormatIBAN(iban).replace(/(.{4})(?!$)/g, "$1" + separator); | ||
var electronic_iban = electronicFormatIBAN(iban); | ||
if (electronic_iban === null) { | ||
return null; | ||
} | ||
return electronic_iban.replace(/(.{4})(?!$)/g, '$1' + separator); | ||
} | ||
/** | ||
* Calculate checksum of IBAN and compares it with checksum provided in IBANregistry | ||
* @param {string} IBAN | ||
* @return {boolean} | ||
* Calculate checksum of IBAN and compares it with checksum provided in IBAN Registry | ||
* | ||
* @ignore | ||
*/ | ||
function isValidIBANChecksum(iban) { | ||
var providedChecksum = parseInt(iban.slice(2, 4), 10); | ||
var temp = iban.slice(3) + iban.slice(0, 2) + "00"; | ||
var validationString = ""; | ||
var temp = iban.slice(3) + iban.slice(0, 2) + '00'; | ||
var validationString = ''; | ||
for (var n = 1; n < temp.length; n++) { | ||
@@ -211,5 +211,3 @@ var c = temp.charCodeAt(n); | ||
var part = validationString.slice(0, 6); | ||
validationString = | ||
(parseInt(part, 10) % 97).toString() + | ||
validationString.slice(part.length); | ||
validationString = (parseInt(part, 10) % 97).toString() + validationString.slice(part.length); | ||
} | ||
@@ -221,8 +219,8 @@ var rest = parseInt(validationString, 10) % 97; | ||
* MOD-97-10 | ||
* @param {string} | ||
* @return {number} | ||
* | ||
* @ignore | ||
*/ | ||
function mod9710(iban) { | ||
iban = iban.slice(3) + iban.slice(0, 4); | ||
var validationString = ""; | ||
var validationString = ''; | ||
for (var n = 1; n < iban.length; n++) { | ||
@@ -239,5 +237,3 @@ var c = iban.charCodeAt(n); | ||
var part = validationString.slice(0, 6); | ||
validationString = | ||
(parseInt(part, 10) % 97).toString() + | ||
validationString.slice(part.length); | ||
validationString = (parseInt(part, 10) % 97).toString() + validationString.slice(part.length); | ||
} | ||
@@ -247,7 +243,7 @@ return parseInt(validationString, 10) % 97; | ||
/** | ||
* getCountrySpecifications | ||
* Returns specifications for all countries, even those who are not | ||
* members of IBAN registry. `IBANRegistry` field indicates if country | ||
* is member of not. | ||
* @example | ||
* | ||
* ``` | ||
* // Validating IBAN form field after user selects his country | ||
@@ -267,4 +263,3 @@ * // <select id="countries"> | ||
* }); | ||
* @alias module:ibantools.getCountrySpecifications | ||
* @return {CountryMap} Object [countryCode: string]CountrySpec -> {chars: :number, bban_regexp: string, IBANRegistry: boolean, SEPA: boolean} | ||
* ``` | ||
*/ | ||
@@ -276,17 +271,16 @@ export function getCountrySpecifications() { | ||
* Validate BIC/SWIFT | ||
* @example | ||
* | ||
* ``` | ||
* // returns true | ||
* ibantools.isValidBIC("ABNANL2A"); | ||
* @example | ||
* | ||
* // returns true | ||
* ibantools.isValidBIC("NEDSZAJJXXX"); | ||
* @example | ||
* | ||
* // returns false | ||
* ibantools.isValidBIC("ABN4NL2A"); | ||
* @example | ||
* | ||
* // returns false | ||
* ibantools.isValidBIC("ABNA NL 2A"); | ||
* @alias module:ibantools.isValidBIC | ||
* @param {string} BIC BIC | ||
* @return {boolean} valid | ||
* ``` | ||
*/ | ||
@@ -297,3 +291,3 @@ export function isValidBIC(bic) { | ||
} | ||
var reg = new RegExp("^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$", ""); | ||
var reg = new RegExp('^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$', ''); | ||
var spec = countrySpecs[bic.toUpperCase().slice(4, 6)]; | ||
@@ -304,8 +298,6 @@ return reg.test(bic) && spec !== undefined; | ||
* extractBIC | ||
* @example | ||
* ``` | ||
* // returns {bankCode: "ABNA", countryCode: "NL", locationCode: "2A", branchCode: null, testBIC: flase, valid: true} | ||
* ibantools.extractBIC("ABNANL2A"); | ||
* @alias module:ibantools.extractBIC | ||
* @param {string} BIC BIC | ||
* @return {ExtractBICResult} Object {bancCode: string, countryCode: string, locationCode: string, branchCode: string, testBIC: boolean, valid: boolean} | ||
* ``` | ||
*/ | ||
@@ -319,4 +311,4 @@ export function extractBIC(inputBic) { | ||
result.locationCode = bic.slice(6, 8); | ||
result.testBIC = result.locationCode[1] === "0" ? true : false; | ||
result.branchCode = bic.length > 8 ? bic.slice(8) : "619"; | ||
result.testBIC = result.locationCode[1] === '0' ? true : false; | ||
result.branchCode = bic.length > 8 ? bic.slice(8) : '619'; | ||
result.valid = true; | ||
@@ -329,15 +321,18 @@ } | ||
} | ||
// Country specifications | ||
/** | ||
* Country specifications | ||
* @ignore | ||
*/ | ||
var countrySpecs = { | ||
AD: { | ||
chars: 24, | ||
bban_regexp: "^[0-9]{8}[A-Z0-9]{12}$", | ||
bban_regexp: '^[0-9]{8}[A-Z0-9]{12}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
AE: { | ||
chars: 23, | ||
bban_regexp: "^[0-9]{3}[0-9]{16}$", | ||
bban_regexp: '^[0-9]{3}[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -349,5 +344,5 @@ AF: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[0-9]{8}[A-Z0-9]{16}$", | ||
bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -357,5 +352,5 @@ AM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 25, | ||
bban_regexp: "^[0-9]{21}$", | ||
bban_regexp: '^[0-9]{21}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -365,3 +360,3 @@ AQ: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
AS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
AT: { chars: 20, bban_regexp: "^[0-9]{16}$", IBANRegistry: true, SEPA: true }, | ||
AT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true }, | ||
AU: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -371,56 +366,56 @@ AW: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 18, | ||
bban_regexp: "^[0-9]{14}$", | ||
bban_regexp: '^[0-9]{14}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
AZ: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{20}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{20}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BA: { | ||
chars: 20, | ||
bban_regexp: "^[0-9]{16}$", | ||
bban_regexp: '^[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BB: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
BD: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
BE: { chars: 16, bban_regexp: "^[0-9]{12}$", IBANRegistry: true, SEPA: true }, | ||
BE: { chars: 16, bban_regexp: '^[0-9]{12}$', IBANRegistry: true, SEPA: true }, | ||
BF: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BG: { | ||
chars: 22, | ||
bban_regexp: "^[A-Z]{4}[0-9]{6}[A-Z0-9]{8}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{6}[A-Z0-9]{8}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
BH: { | ||
chars: 22, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{14}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{14}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BI: { | ||
chars: 16, | ||
bban_regexp: "^[0-9]{12}$", | ||
bban_regexp: '^[0-9]{12}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BJ: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{1}[0-9]{23}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
BL: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -433,5 +428,5 @@ BM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 29, | ||
bban_regexp: "^[0-9]{23}[A-Z]{1}[A-Z0-9]{1}$", | ||
bban_regexp: '^[0-9]{23}[A-Z]{1}[A-Z0-9]{1}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -444,5 +439,5 @@ BS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{4}[0-9]{4}[A-Z0-9]{16}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -455,23 +450,23 @@ BZ: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
CG: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
CH: { | ||
chars: 21, | ||
bban_regexp: "^[0-9]{5}[A-Z0-9]{12}$", | ||
bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
CI: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{1}[0-9]{23}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -482,5 +477,5 @@ CK: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -491,8 +486,8 @@ CN: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 22, | ||
bban_regexp: "^[0-9]{18}$", | ||
bban_regexp: '^[0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
CU: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
CV: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
CV: { chars: 25, bban_regexp: '^[0-9]{21}$', IBANRegistry: false, SEPA: false }, | ||
CW: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -502,57 +497,57 @@ CX: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[0-9]{8}[A-Z0-9]{16}$", | ||
bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
CZ: { chars: 24, bban_regexp: "^[0-9]{20}$", IBANRegistry: true, SEPA: true }, | ||
DE: { chars: 22, bban_regexp: "^[0-9]{18}$", IBANRegistry: true, SEPA: true }, | ||
CZ: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true }, | ||
DE: { chars: 22, bban_regexp: '^[0-9]{18}$', IBANRegistry: true, SEPA: true }, | ||
DJ: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
DK: { chars: 18, bban_regexp: "^[0-9]{14}$", IBANRegistry: true, SEPA: true }, | ||
DK: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true, SEPA: true }, | ||
DM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
DO: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{4}[0-9]{20}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{20}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
DZ: { | ||
chars: 24, | ||
bban_regexp: "^[0-9]{20}$", | ||
bban_regexp: '^[0-9]{20}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
EC: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
EE: { chars: 20, bban_regexp: "^[0-9]{16}$", IBANRegistry: true, SEPA: true }, | ||
EG: { chars: 29, bban_regexp: "^[0-9]{25}", IBANRegistry: true, SEPA: false }, | ||
EE: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true }, | ||
EG: { chars: 29, bban_regexp: '^[0-9]{25}', IBANRegistry: true, SEPA: false }, | ||
EH: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
ER: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
ES: { chars: 24, bban_regexp: "^[0-9]{20}$", IBANRegistry: true, SEPA: true }, | ||
ES: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true }, | ||
ET: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
FI: { chars: 18, bban_regexp: "^[0-9]{14}$", IBANRegistry: true, SEPA: true }, | ||
FI: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true, SEPA: true }, | ||
FJ: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
FK: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
FM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
FO: { chars: 18, bban_regexp: "^[0-9]{14}$", IBANRegistry: true, SEPA: true }, | ||
FO: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true, SEPA: true }, | ||
FR: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
GA: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
GB: { | ||
chars: 22, | ||
bban_regexp: "^[A-Z]{4}[0-9]{14}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{14}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
@@ -562,11 +557,11 @@ GD: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 22, | ||
bban_regexp: "^[A-Z0-9]{2}[0-9]{16}$", | ||
bban_regexp: '^[A-Z0-9]{2}[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
GF: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -577,7 +572,7 @@ GG: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 23, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{15}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{15}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
GL: { chars: 18, bban_regexp: "^[0-9]{14}$", IBANRegistry: true, SEPA: true }, | ||
GL: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true, SEPA: true }, | ||
GM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -587,17 +582,17 @@ GN: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
GQ: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
GR: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{7}[A-Z0-9]{16}$", | ||
bban_regexp: '^[0-9]{7}[A-Z0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
@@ -607,5 +602,5 @@ GS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[A-Z0-9]{24}$", | ||
bban_regexp: '^[A-Z0-9]{24}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -615,5 +610,5 @@ GU: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 25, | ||
bban_regexp: "^[A-Z]{2}[0-9]{19}$", | ||
bban_regexp: '^[A-Z]{2}[0-9]{19}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -625,21 +620,21 @@ GY: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{4}[0-9]{20}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{20}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
HR: { chars: 21, bban_regexp: "^[0-9]{17}$", IBANRegistry: true, SEPA: true }, | ||
HR: { chars: 21, bban_regexp: '^[0-9]{17}$', IBANRegistry: true, SEPA: true }, | ||
HT: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
HU: { chars: 28, bban_regexp: "^[0-9]{24}$", IBANRegistry: true, SEPA: true }, | ||
HU: { chars: 28, bban_regexp: '^[0-9]{24}$', IBANRegistry: true, SEPA: true }, | ||
ID: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
IE: { | ||
chars: 22, | ||
bban_regexp: "^[A-Z0-9]{4}[0-9]{14}$", | ||
bban_regexp: '^[A-Z0-9]{4}[0-9]{14}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
IL: { | ||
chars: 23, | ||
bban_regexp: "^[0-9]{19}$", | ||
bban_regexp: '^[0-9]{19}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -651,18 +646,18 @@ IM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 23, | ||
bban_regexp: "^[A-Z]{4}[0-9]{15}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{15}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
IR: { | ||
chars: 26, | ||
bban_regexp: "^[0-9]{22}$", | ||
bban_regexp: '^[0-9]{22}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
IS: { chars: 26, bban_regexp: "^[0-9]{22}$", IBANRegistry: true, SEPA: true }, | ||
IS: { chars: 26, bban_regexp: '^[0-9]{22}$', IBANRegistry: true, SEPA: true }, | ||
IT: { | ||
chars: 27, | ||
bban_regexp: "^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
@@ -673,5 +668,5 @@ JE: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 30, | ||
bban_regexp: "^[A-Z]{4}[0-9]{4}[A-Z0-9]{18}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -685,5 +680,5 @@ JP: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -695,5 +690,5 @@ KN: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 30, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{22}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{22}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -703,5 +698,5 @@ KY: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 20, | ||
bban_regexp: "^[0-9]{3}[A-Z0-9]{13}$", | ||
bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -711,17 +706,17 @@ LA: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 28, | ||
bban_regexp: "^[0-9]{4}[A-Z0-9]{20}$", | ||
bban_regexp: '^[0-9]{4}[A-Z0-9]{20}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
LC: { | ||
chars: 32, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{24}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{24}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
LI: { | ||
chars: 21, | ||
bban_regexp: "^[0-9]{5}[A-Z0-9]{12}$", | ||
bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
@@ -731,56 +726,56 @@ LK: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
LS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
LT: { chars: 20, bban_regexp: "^[0-9]{16}$", IBANRegistry: true, SEPA: true }, | ||
LT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true }, | ||
LU: { | ||
chars: 20, | ||
bban_regexp: "^[0-9]{3}[A-Z0-9]{13}$", | ||
bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
LV: { | ||
chars: 21, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{13}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{13}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
LY: { | ||
chars: 25, | ||
bban_regexp: "^[0-9]{21}$", | ||
bban_regexp: '^[0-9]{21}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
MA: { | ||
chars: 28, | ||
bban_regexp: "^[0-9]{24}$", | ||
bban_regexp: '^[0-9]{24}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
MC: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
MD: { | ||
chars: 24, | ||
bban_regexp: "^[A-Z0-9]{2}[A-Z0-9]{18}$", | ||
bban_regexp: '^[A-Z0-9]{2}[A-Z0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
ME: { | ||
chars: 22, | ||
bban_regexp: "^[0-9]{18}$", | ||
bban_regexp: '^[0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
MF: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
MG: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -790,11 +785,11 @@ MH: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 19, | ||
bban_regexp: "^[0-9]{3}[A-Z0-9]{10}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{3}[A-Z0-9]{10}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
ML: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{1}[0-9]{23}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -807,11 +802,11 @@ MM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
MR: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -821,11 +816,11 @@ MS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 31, | ||
bban_regexp: "^[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
MU: { | ||
chars: 30, | ||
bban_regexp: "^[A-Z]{4}[0-9]{19}[A-Z]{3}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{19}[A-Z]{3}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -838,5 +833,5 @@ MV: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 25, | ||
bban_regexp: "^[0-9]{21}$", | ||
bban_regexp: '^[0-9]{21}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -846,11 +841,11 @@ NA: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
NE: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{2}[0-9]{22}$", | ||
bban_regexp: '^[A-Z]{2}[0-9]{22}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -861,13 +856,13 @@ NF: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 32, | ||
bban_regexp: "^[A-Z]{4}[0-9]{24}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{24}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
NL: { | ||
chars: 18, | ||
bban_regexp: "^[A-Z]{4}[0-9]{10}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{10}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
NO: { chars: 15, bban_regexp: "^[0-9]{11}$", IBANRegistry: true, SEPA: true }, | ||
NO: { chars: 15, bban_regexp: '^[0-9]{11}$', IBANRegistry: true, SEPA: true }, | ||
NP: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -882,5 +877,5 @@ NR: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -891,12 +886,12 @@ PG: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 24, | ||
bban_regexp: "^[A-Z0-9]{4}[0-9]{16}$", | ||
bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
PL: { chars: 28, bban_regexp: "^[0-9]{24}$", IBANRegistry: true, SEPA: true }, | ||
PL: { chars: 28, bban_regexp: '^[0-9]{24}$', IBANRegistry: true, SEPA: true }, | ||
PM: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -907,7 +902,7 @@ PN: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 29, | ||
bban_regexp: "^[A-Z0-9]{4}[0-9]{21}$", | ||
bban_regexp: '^[A-Z0-9]{4}[0-9]{21}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
PT: { chars: 25, bban_regexp: "^[0-9]{21}$", IBANRegistry: true, SEPA: true }, | ||
PT: { chars: 25, bban_regexp: '^[0-9]{21}$', IBANRegistry: true, SEPA: true }, | ||
PW: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -917,23 +912,23 @@ PY: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 29, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{21}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{21}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
RE: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
RO: { | ||
chars: 24, | ||
bban_regexp: "^[A-Z]{4}[A-Z0-9]{16}$", | ||
bban_regexp: '^[A-Z]{4}[A-Z0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
RS: { | ||
chars: 22, | ||
bban_regexp: "^[0-9]{18}$", | ||
bban_regexp: '^[0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -944,5 +939,5 @@ RU: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 24, | ||
bban_regexp: "^[0-9]{2}[A-Z0-9]{18}$", | ||
bban_regexp: '^[0-9]{2}[A-Z0-9]{18}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -952,25 +947,25 @@ SB: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 31, | ||
bban_regexp: "^[A-Z]{4}[0-9]{20}[A-Z]{3}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{20}[A-Z]{3}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
SD: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
SE: { chars: 24, bban_regexp: "^[0-9]{20}$", IBANRegistry: true, SEPA: true }, | ||
SE: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true }, | ||
SG: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
SH: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
SI: { chars: 19, bban_regexp: "^[0-9]{15}$", IBANRegistry: true, SEPA: true }, | ||
SI: { chars: 19, bban_regexp: '^[0-9]{15}$', IBANRegistry: true, SEPA: true }, | ||
SJ: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
SK: { chars: 24, bban_regexp: "^[0-9]{20}$", IBANRegistry: true, SEPA: true }, | ||
SK: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true }, | ||
SL: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
SM: { | ||
chars: 27, | ||
bban_regexp: "^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$', | ||
IBANRegistry: true, | ||
SEPA: true | ||
SEPA: true, | ||
}, | ||
SN: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{1}[0-9]{23}$", | ||
bban_regexp: '^[A-Z]{1}[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -982,11 +977,11 @@ SO: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 25, | ||
bban_regexp: "^[0-9]{21}$", | ||
bban_regexp: '^[0-9]{21}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
SV: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{4}[0-9]{20}$", | ||
bban_regexp: '^[A-Z]{4}[0-9]{20}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -999,17 +994,17 @@ SX: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{23}$", | ||
bban_regexp: '^[0-9]{23}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
TF: { | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
TG: { | ||
chars: 28, | ||
bban_regexp: "^[A-Z]{2}[0-9]{22}$", | ||
bban_regexp: '^[A-Z]{2}[0-9]{22}$', | ||
IBANRegistry: false, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1021,5 +1016,5 @@ TH: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 23, | ||
bban_regexp: "^[0-9]{19}$", | ||
bban_regexp: '^[0-9]{19}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1029,5 +1024,5 @@ TM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 24, | ||
bban_regexp: "^[0-9]{20}$", | ||
bban_regexp: '^[0-9]{20}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1037,5 +1032,5 @@ TO: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 26, | ||
bban_regexp: "^[0-9]{5}[A-Z0-9]{17}$", | ||
bban_regexp: '^[0-9]{5}[A-Z0-9]{17}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1048,5 +1043,5 @@ TT: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 29, | ||
bban_regexp: "^[0-9]{6}[A-Z0-9]{19}$", | ||
bban_regexp: '^[0-9]{6}[A-Z0-9]{19}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1058,3 +1053,3 @@ UG: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
UZ: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
VA: { chars: 22, bban_regexp: "^[0-9]{18}", IBANRegistry: true, SEPA: false }, | ||
VA: { chars: 22, bban_regexp: '^[0-9]{18}', IBANRegistry: true, SEPA: false }, | ||
VC: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
@@ -1064,5 +1059,5 @@ VE: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 24, | ||
bban_regexp: "^[A-Z0-9]{4}[0-9]{16}$", | ||
bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1074,5 +1069,5 @@ VI: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1082,5 +1077,5 @@ WS: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 20, | ||
bban_regexp: "^[0-9]{16}$", | ||
bban_regexp: '^[0-9]{16}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
@@ -1090,9 +1085,9 @@ YE: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
chars: 27, | ||
bban_regexp: "^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$", | ||
bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$', | ||
IBANRegistry: true, | ||
SEPA: false | ||
SEPA: false, | ||
}, | ||
ZA: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
ZM: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
ZW: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false } | ||
ZW: { chars: null, bban_regexp: null, IBANRegistry: false, SEPA: false }, | ||
}; |
{ | ||
"name": "ibantools", | ||
"version": "3.2.1", | ||
"version": "3.2.2", | ||
"description": "Validation, extraction and creation of IBAN, BBAN, BIC/SWIFT numbers plus some other helpful stuff like ISO 3136-1 alpha 2 country list", | ||
@@ -43,3 +43,5 @@ "keywords": [ | ||
"coverage": "gulp coverage", | ||
"prepare": "npm run build" | ||
"lint": "gulp lint", | ||
"prepare": "npm run build", | ||
"docs": "gulp docs" | ||
}, | ||
@@ -52,2 +54,4 @@ "author": { | ||
"devDependencies": { | ||
"@typescript-eslint/eslint-plugin": "^4.7.0", | ||
"@typescript-eslint/parser": "^4.7.0", | ||
"chai": "^4.2.0", | ||
@@ -57,2 +61,5 @@ "cheerio": "^0.22", | ||
"docdash": "^1.2.0", | ||
"eslint": "^7.13.0", | ||
"eslint-config-prettier": "^6.15.0", | ||
"eslint-plugin-prettier": "^3.1.4", | ||
"gulp": "^4.0.2", | ||
@@ -62,5 +69,5 @@ "gulp-mocha": "^7.0", | ||
"gulp-shell": "^0.8.0", | ||
"gulp-typedoc": "^2.2.5", | ||
"gulp-typescript": "^5.0", | ||
"jasmine-core": "^3.6.0", | ||
"jsdoc": "^3.6.6", | ||
"karma": "^5.2.3", | ||
@@ -76,5 +83,5 @@ "karma-chrome-launcher": "^3.1", | ||
"requirejs": "^2.3.6", | ||
"tslint": "^6.1.3", | ||
"typedoc": "^0.17.0-3", | ||
"typescript": "^4.0" | ||
} | ||
} |
@@ -8,3 +8,4 @@ # IBANTools | ||
[![Build CI](https://github.com/Simplify/ibantools/workflows/Build%20CI/badge.svg?branch=master)](https://github.com/Simplify/ibantools/actions?query=workflow%3A%22Build+CI%22) | ||
![Build CI](https://github.com/Simplify/ibantools/workflows/Build%20CI%20(Master)/badge.svg?branch=master) | ||
![ESLint & Prettier CI](https://github.com/Simplify/ibantools/workflows/ESLint%20&%20Prettier/badge.svg?branch=master) | ||
[![Coverage Status](https://coveralls.io/repos/github/Simplify/ibantools/badge.svg?branch=master)](https://coveralls.io/github/Simplify/ibantools?branch=master) | ||
@@ -11,0 +12,0 @@ |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
84
101069
28
2244