Skip to content

luhn ​

Номер банковской карты с верной контрольной цифрой (алгоритм Луна), 12–19 цифр.

Сигнатура ​

ts
function luhn(msg?: Message): Action<string>
function isLuhn(value: string): boolean

Параметры ​

ПараметрТипОписание
msgMessageСвоё сообщение об ошибке

Коды ошибок ​

КодКогдаСообщение по умолчанию
luhnНеверная контрольная сумма или форматInvalid card number

Тексты можно поменять: см. Сообщения и локализация.

Особенности ​

Ловит опечатки и случайные цифры. Не проверяет срок действия, существование карты и платёжную систему — для системы есть cardBrand в tinyval-mask.

  • Пробелы и дефисы допускаются: можно проверять значение с маской.
  • Функция isLuhn доступна отдельно — для проверки без схемы.
  • Ввод удобно оформить маской из tinyval-mask.

Пример ​

ts
const Payment = object({ card: pipe(string(), luhn()) });

isLuhn('4111 1111 1111 1111'); // true

См. также ​