ibantools 4.3.6 → 4.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/ibantools.js +32 -1
- package/jsnext/ibantools.js +32 -1
- package/package.json +2 -2
package/build/ibantools.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @package Documentation
|
|
9
9
|
* @author Saša Jovanić
|
|
10
10
|
* @module ibantools
|
|
11
|
-
* @version 4.3.
|
|
11
|
+
* @version 4.3.8
|
|
12
12
|
* @license MPL-2.0
|
|
13
13
|
* @preferred
|
|
14
14
|
*/
|
|
@@ -776,6 +776,36 @@ var checkHungarianBBAN = function (bban) {
|
|
|
776
776
|
return controlDigitAccount === (remainder_2 === 0 ? 0 : 10 - remainder_2);
|
|
777
777
|
}
|
|
778
778
|
};
|
|
779
|
+
/**
|
|
780
|
+
* Dutch (NL) BBAN check
|
|
781
|
+
*
|
|
782
|
+
* @ignore
|
|
783
|
+
*/
|
|
784
|
+
var checkDutchBBAN = function (bban) {
|
|
785
|
+
if (bban === '') {
|
|
786
|
+
return false;
|
|
787
|
+
}
|
|
788
|
+
var weights = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
|
|
789
|
+
var toCheckAccount = bban.substring(4, 14);
|
|
790
|
+
if (toCheckAccount.startsWith('000')) {
|
|
791
|
+
return true;
|
|
792
|
+
}
|
|
793
|
+
if (toCheckAccount.startsWith('00')) {
|
|
794
|
+
return false;
|
|
795
|
+
}
|
|
796
|
+
var sum = toCheckAccount
|
|
797
|
+
.split('')
|
|
798
|
+
.map(function (value, index) {
|
|
799
|
+
if (value === '0' && index === 0) {
|
|
800
|
+
return 0;
|
|
801
|
+
}
|
|
802
|
+
var number = parseInt(value, 10);
|
|
803
|
+
var weight = weights[index];
|
|
804
|
+
return number * weight;
|
|
805
|
+
})
|
|
806
|
+
.reduce(function (a, b) { return a + b; });
|
|
807
|
+
return sum % 11 === 0;
|
|
808
|
+
};
|
|
779
809
|
/**
|
|
780
810
|
* Set custom BBAN validation function for country.
|
|
781
811
|
*
|
|
@@ -1429,6 +1459,7 @@ exports.countrySpecs = {
|
|
|
1429
1459
|
NL: {
|
|
1430
1460
|
chars: 18,
|
|
1431
1461
|
bban_regexp: '^[A-Z]{4}[0-9]{10}$',
|
|
1462
|
+
bban_validation_func: checkDutchBBAN,
|
|
1432
1463
|
IBANRegistry: true,
|
|
1433
1464
|
SEPA: true,
|
|
1434
1465
|
bank_identifier: '0-3',
|
package/jsnext/ibantools.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @package Documentation
|
|
9
9
|
* @author Saša Jovanić
|
|
10
10
|
* @module ibantools
|
|
11
|
-
* @version 4.3.
|
|
11
|
+
* @version 4.3.8
|
|
12
12
|
* @license MPL-2.0
|
|
13
13
|
* @preferred
|
|
14
14
|
*/
|
|
@@ -761,6 +761,36 @@ var checkHungarianBBAN = function (bban) {
|
|
|
761
761
|
return controlDigitAccount === (remainder_2 === 0 ? 0 : 10 - remainder_2);
|
|
762
762
|
}
|
|
763
763
|
};
|
|
764
|
+
/**
|
|
765
|
+
* Dutch (NL) BBAN check
|
|
766
|
+
*
|
|
767
|
+
* @ignore
|
|
768
|
+
*/
|
|
769
|
+
var checkDutchBBAN = function (bban) {
|
|
770
|
+
if (bban === '') {
|
|
771
|
+
return false;
|
|
772
|
+
}
|
|
773
|
+
var weights = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
|
|
774
|
+
var toCheckAccount = bban.substring(4, 14);
|
|
775
|
+
if (toCheckAccount.startsWith('000')) {
|
|
776
|
+
return true;
|
|
777
|
+
}
|
|
778
|
+
if (toCheckAccount.startsWith('00')) {
|
|
779
|
+
return false;
|
|
780
|
+
}
|
|
781
|
+
var sum = toCheckAccount
|
|
782
|
+
.split('')
|
|
783
|
+
.map(function (value, index) {
|
|
784
|
+
if (value === '0' && index === 0) {
|
|
785
|
+
return 0;
|
|
786
|
+
}
|
|
787
|
+
var number = parseInt(value, 10);
|
|
788
|
+
var weight = weights[index];
|
|
789
|
+
return number * weight;
|
|
790
|
+
})
|
|
791
|
+
.reduce(function (a, b) { return a + b; });
|
|
792
|
+
return sum % 11 === 0;
|
|
793
|
+
};
|
|
764
794
|
/**
|
|
765
795
|
* Set custom BBAN validation function for country.
|
|
766
796
|
*
|
|
@@ -1413,6 +1443,7 @@ export var countrySpecs = {
|
|
|
1413
1443
|
NL: {
|
|
1414
1444
|
chars: 18,
|
|
1415
1445
|
bban_regexp: '^[A-Z]{4}[0-9]{10}$',
|
|
1446
|
+
bban_validation_func: checkDutchBBAN,
|
|
1416
1447
|
IBANRegistry: true,
|
|
1417
1448
|
SEPA: true,
|
|
1418
1449
|
bank_identifier: '0-3',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ibantools",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.8",
|
|
4
4
|
"description": "Validation, extraction and creation of IBAN, BBAN, BIC/SWIFT numbers plus some other helpful stuff like ISO 3136-1 alpha 2 country list",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"IBAN",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"prettier": "^3.0.3",
|
|
75
75
|
"requirejs": "^2.3.6",
|
|
76
76
|
"typedoc": "^0.25.1",
|
|
77
|
-
"typescript": "^5.2
|
|
77
|
+
"typescript": "^5.2"
|
|
78
78
|
},
|
|
79
79
|
"resolutions": {
|
|
80
80
|
"source-map": "^0.8.0-beta.0"
|