This commit is contained in:
Jonasz Bigda
2023-03-25 21:51:42 +01:00
parent 0db1d5117e
commit b332e9ceb0
1044 changed files with 37502 additions and 63938 deletions

View File

@@ -3,19 +3,24 @@
* the thirteen-digit EAN-13, while the
* less commonly used 8-digit EAN-8 barcode was
* introduced for use on small packages.
* Also EAN/UCC-14 is used for Grouping of individual
* trade items above unit level(Intermediate, Carton or Pallet).
* For more info about EAN-14 checkout: https://www.gtin.info/itf-14-barcodes/
* EAN consists of:
* GS1 prefix, manufacturer code, product code and check digit
* Reference: https://en.wikipedia.org/wiki/International_Article_Number
* Reference: https://www.gtin.info/
*/
import assertString from './util/assertString';
/**
* Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13
* and Regular Expression for valid EANs (EAN-8, EAN-13),
* with exact numberic matching of 8 or 13 digits [0-9]
* Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13; 14 for EAN-14
* and Regular Expression for valid EANs (EAN-8, EAN-13, EAN-14),
* with exact numberic matching of 8 or 13 or 14 digits [0-9]
*/
var LENGTH_EAN_8 = 8;
var validEanRegex = /^(\d{8}|\d{13})$/;
var LENGTH_EAN_14 = 14;
var validEanRegex = /^(\d{8}|\d{13}|\d{14})$/;
/**
* Get position weight given:
* EAN length and digit index/position
@@ -26,7 +31,7 @@ var validEanRegex = /^(\d{8}|\d{13})$/;
*/
function getPositionWeightThroughLengthAndIndex(length, index) {
if (length === LENGTH_EAN_8) {
if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) {
return index % 2 === 0 ? 3 : 1;
}
@@ -52,7 +57,7 @@ function calculateCheckDigit(ean) {
}
/**
* Check if string is valid EAN:
* Matches EAN-8/EAN-13 regex
* Matches EAN-8/EAN-13/EAN-14 regex
* Has valid check digit.
*
* @param {string} str