Метод isISBN предназначен для проверки корректности
международных стандартных книжных номеров ISBN (International Standard
Book Number). Он позволяет определить, соответствует ли переданная
строка формату ISBN-10 или ISBN-13, включая проверку контрольной суммы,
структуры и допустимых символов.
Функция вызывается через основной объект библиотеки:
validator.isISBN(str [, version])
Параметры:
str — строка, содержащая предполагаемый
ISBN.
version — необязательный параметр, задающий версию
стандарта:
'10' — проверка только ISBN-10'13' — проверка только ISBN-13Возвращаемое значение:
true — если строка является корректным ISBN указанного
форматаfalse — если формат или контрольная сумма не
соответствуют стандартуISBN существует в двух основных вариантах, которые отличаются структурой и алгоритмом проверки:
Состоит из 10 символов. Последний символ может быть цифрой или
символом X, который обозначает значение 10 в контрольной
сумме.
Пример:
3-16-148410-X
Структура ISBN-10 включает:
Контрольная сумма вычисляется с использованием весов от 10 до 1.
Состоит из 13 цифр и полностью совместим с EAN-13 (штрихкодовая система товаров).
Пример:
978-3-16-148410-0
Структура включает:
Контрольная сумма вычисляется по модулю 10 с чередующимися весами 1 и 3.
Метод isISBN выполняет несколько проверок:
Очистка входной строки Допускаются пробелы и дефисы, которые игнорируются при валидации.
Проверка длины
Проверка допустимых символов
X в концеВалидация контрольной суммы
validator.isISBN('3-16-148410-X', '10');
Результат:
true
Даже при наличии дефисов строка корректно распознаётся.
validator.isISBN('978-3-16-148410-0', '13');
Результат:
true
validator.isISBN('9783161484100');
Функция сама определяет, что строка относится к ISBN-13 и выполняет соответствующую проверку.
validator.isISBN('978-3-16-148410-9');
Результат:
false
Несмотря на правильный формат, контрольная цифра не совпадает с вычисленной.
validator.isISBN('978-3-16-14841A-0');
Результат:
false
Наличие букв, кроме допустимого X в ISBN-10, делает
строку невалидной.
validator.isISBN('123456789');
Результат:
false
Слишком короткая строка не может соответствовать стандарту ISBN.
Метод обладает рядом поведенческих особенностей, которые важно учитывать при интеграции:
Дефисы и пробелы не влияют на результат проверки. Это позволяет использовать разные форматы записи:
validator.isISBN('978 3 16 148410 0', '13'); // true
validator.isISBN('978-3-16-148410-0', '13'); // true
Даже при идеально совпадающей структуре строка будет отклонена, если контрольная цифра не соответствует алгоритму.
Любые дополнительные символы (скобки, точки, буквы вне допустимого диапазона) приводят к отрицательному результату.
validator.isISBN('(978)-3-16-148410-0'); // false
| Характеристика | ISBN-10 | ISBN-13 |
|---|---|---|
| Длина | 10 | 13 |
| Использование | старый формат | современный стандарт |
| Контрольная схема | модуль 11 | модуль 10 |
| Символ X | допускается | не допускается |
Метод часто используется для проверки пользовательского ввода в библиотеках, интернет-магазинах и каталогах книг.
if (validator.isISBN(inputValue)) {
// значение корректно
}
Перед сохранением в базу данных ISBN проверяется на соответствие стандарту, что снижает риск ошибок при поиске и индексации.
При работе с внешними источниками данных метод помогает фильтровать некорректные идентификаторы до выполнения запросов.
validator.isISBN(9783161484100);
Результат:
false
Метод ожидает строковый тип данных.
При строгих требованиях к формату необходимо явно указывать версию:
validator.isISBN('3-16-148410-X', '13'); // false
Метод предназначен исключительно для ISBN и не подходит для других идентификаторов (ISSN, EAN, UPC).
falsenull и undefined не считаются допустимыми
значениямиВнутри метод использует строго детерминированные алгоритмы:
Эта логика обеспечивает устойчивость к ошибкам ввода и защищает от случайных совпадений.
Метод isISBN является частью зрелого набора валидаторов
и сохраняет обратную совместимость между версиями библиотеки. Поведение
функции остаётся предсказуемым, что делает её пригодной для
использования в серверных и клиентских приложениях, где требуется
строгая проверка структурированных идентификаторов.