luhn
Номер банковской карты с верной контрольной цифрой (алгоритм Луна), 12–19 цифр.
Сигнатура
ts
function luhn(msg?: Message): Action<string>
function isLuhn(value: string): booleanПараметры
| Параметр | Тип | Описание |
|---|---|---|
msg | Message | Своё сообщение об ошибке |
Коды ошибок
| Код | Когда | Сообщение по умолчанию |
|---|---|---|
luhn | Неверная контрольная сумма или формат | Invalid card number |
Тексты можно поменять: см. Сообщения и локализация.
Особенности
Ловит опечатки и случайные цифры. Не проверяет срок действия, существование карты и платёжную систему — для системы есть cardBrand в tinyval-mask.
- Пробелы и дефисы допускаются: можно проверять значение с маской.
- Функция
isLuhnдоступна отдельно — для проверки без схемы. - Ввод удобно оформить маской из tinyval-mask.
Пример
ts
const Payment = object({ card: pipe(string(), luhn()) });
isLuhn('4111 1111 1111 1111'); // true