Методы isEAN

Метод isEAN в библиотеке validator.js предназначен для проверки корректности международных штрихкодов формата EAN (European Article Number). Он используется для валидации строк, которые должны соответствовать стандартам EAN-8 или EAN-13, применяемым в розничной торговле, логистике и системах идентификации товаров.

EAN-код представляет собой числовую последовательность фиксированной длины, содержащую контрольную цифру, вычисляемую по алгоритму модуля 10 с весами 1 и 3. Метод isEAN реализует проверку как структуры строки, так и корректности контрольной суммы.


Синтаксис

isEAN(str [, options])
  • str — строка, содержащая предполагаемый EAN-код
  • options — необязательный объект конфигурации

Поддерживаемые форматы

Метод поддерживает два основных стандарта:

  • EAN-8 — 8 цифр
  • EAN-13 — 13 цифр

Строка должна состоять исключительно из цифр без пробелов, дефисов или других разделителей, если не указано иное в параметрах обработки.


Базовый алгоритм проверки

Проверка EAN-кода включает несколько этапов:

  1. Проверка длины строки (8 или 13 символов)
  2. Проверка наличия только числовых символов
  3. Вычисление контрольной цифры
  4. Сравнение вычисленной контрольной цифры с последним символом строки

Алгоритм вычисления контрольной суммы:

  • цифры, начиная справа (без контрольной), чередуются по весам 3 и 1
  • сумма произведений вычисляется
  • контрольная цифра определяется как число, которое необходимо добавить до ближайшего кратного 10

Пример использования

import validator from 'validator';

validator.isEAN('4006381333931'); // true
validator.isEAN('4006381333932'); // false

В первом случае код корректен: длина соответствует EAN-13, а контрольная цифра совпадает с вычисленной. Во втором случае нарушена целостность контрольной суммы.


Проверка EAN-8

validator.isEAN('96385074'); // true или false в зависимости от контрольной цифры

EAN-8 используется для маркировки небольших товаров, где нет необходимости в длинном идентификаторе.


Параметры options

Объект options позволяет уточнить правила проверки.

ignore_whitespace

validator.isEAN('4006 3813 3393 1', { ignore_whitespace: true });

Позволяет игнорировать пробелы в строке перед проверкой. Это удобно при обработке пользовательского ввода или данных из внешних источников, где форматирование может быть нестабильным.


Особенности реализации

Метод ориентирован на строгую валидацию, поэтому:

  • любые символы, кроме цифр (если не включена опция игнорирования пробелов), приводят к false
  • строки неправильной длины автоматически отклоняются
  • контрольная сумма всегда пересчитывается, а не доверяется входным данным

Типичные ошибки при использовании

Часто встречающиеся проблемы при проверке EAN:

  • передача числового значения вместо строки
validator.isEAN(4006381333931); // некорректно
  • наличие скрытых символов (например, переносов строки)
  • использование EAN-кодов с префиксами или постфиксами (например, URL-представления)
  • попытка проверить UPC-коды через isEAN без предварительной конвертации

Отличие от других методов проверки

В библиотеке Validator.js существуют другие методы для похожих задач, но с различной областью применения:

  • isISBN — для книжных идентификаторов
  • isUPC — для универсальных товарных кодов США
  • isEAN — международный стандарт товарной маркировки

EAN является более глобальным стандартом и включает в себя UPC как частный случай расширенной системы идентификации.


Обработка входных данных

Перед передачей строки в isEAN часто выполняется предварительная нормализация:

  • удаление пробелов
  • удаление символов форматирования
  • приведение к строковому типу
const code = String(input).replace(/\s+/g, '');
validator.isEAN(code);

Такая подготовка снижает вероятность ложных отрицательных результатов при валидации данных, поступающих из пользовательских интерфейсов или внешних API.


Практическое применение

Проверка EAN активно используется в следующих областях:

  • системы складского учёта
  • интернет-магазины
  • кассовое программное обеспечение
  • интеграции с поставщиками товаров
  • автоматизация логистических процессов

Корректная валидация позволяет избежать ошибок при идентификации товаров и снижает риск некорректного сопоставления SKU.


Поведение при некорректных данных

Метод возвращает строго булево значение:

  • true — строка соответствует стандарту EAN
  • false — любое отклонение от формата или контрольной суммы

Отсутствие исключений делает метод удобным для использования в цепочках валидации и массовой проверке данных.