Skip to content

Готовые маски ​

Готовые маски. Импортируйте из tinyval-mask/presets — так в сборку попадут только нужные. Все маски доступны и через объект masks из tinyval-mask.

ts
import { phone, card, money } from 'tinyval-mask/presets'; // tree-shakeable
import { masks } from 'tinyval-mask';                      // masks.phone(), masks.card()…

Телефоны ​

СтранаМаскаФормат
🇷🇺 Россияphone(), phone('ru')+7 (123) 456-78-90
🇰🇿 Казахстанphone('kz')+7 (123) 456-78-90
🇧🇾 Беларусьphone('by')+375 (12) 345-67-89
🇺🇦 Украинаphone('ua')+380 (12) 345-67-89
🇺🇿 Узбекистанphone('uz')+998 (12) 345-67-89
🇰🇬 Киргизияphone('kg')+996 (123) 456-789
🇹🇯 Таджикистанphone('tj')+992 (12) 345-67-89
🇹🇲 Туркменистанphone('tm')+993 (12) 34-56-78
🇦🇲 Арменияphone('am')+374 (12) 345-678
🇬🇪 Грузияphone('ge')+995 (123) 45-67-89
🇦🇿 Азербайджанphone('az')+994 (12) 345-67-89
🇲🇩 Молдоваphone('md')+373 (12) 345-678
🇱🇻 Латвияphone('lv')+371 1234-5678
🇱🇹 Литваphone('lt')+370 (123) 45678
🇪🇪 Эстонияphone('ee')+372 123 4567
🇺🇸 Соединенные Штатыphone('us')+1 (123) 456-7890
🇨🇦 Канадаphone('ca')+1 (123) 456-7890
🇬🇧 Великобританияphone('gb')+44 1234 567890
🇩🇪 Германияphone('de')+49 123 4567890
🇫🇷 Францияphone('fr')+33 1 23 45 67 89
🇮🇹 Италияphone('it')+39 123 456 7890
🇪🇸 Испанияphone('es')+34 123 45 67 89
🇵🇱 Польшаphone('pl')+48 123 456 789
🇹🇷 Турцияphone('tr')+90 (123) 456 78 90
🇨🇳 Китайphone('cn')+86 123 4567 8901
🇮🇳 Индияphone('in')+91 12345 67890
🇮🇱 Израильphone('il')+972 12-345-6789
🇦🇪 ОАЭphone('ae')+971 12 345 6789

Без маски — все цифры вместе с кодом страны: +375 (29) 123-45-67 → 375291234567. Для России и Казахстана 7 или 8 в начале понимается как код страны: 89991234567 → +7 (999) 123-45-67.

Если страна заранее неизвестна, используйте phoneAuto: маска выбирается по коду, который вводит пользователь, и есть флаг и название страны для интерфейса.

Банковские карты ​

МаскаПример
card()4276 1234 5678 9012; Amex — 3782 822463 10005; до 19 цифр
cardExpiry()12/26
cvc()123 или 1234
cardBrand(number)'visa', 'mastercard', 'mir', 'amex', 'unionpay', 'unknown' — например, чтобы показать иконку

Даты и время ​

МаскаПример
date(), date('dd.mm.yyyy')02.10.2026
date('yyyy-mm-dd'), date('mm/dd/yyyy'), date('dd/mm/yyyy')2026-10-02
time(), time(true)09:30, 09:30:15
datetime()02.10.2026 15:30

Невозможные цифры не вводятся: 32-е число, 13-й месяц, 25-й час, 60 минут, 00.00. То же у cardExpiry для месяца. Существует ли дата целиком (31 февраля), проверяет валидация: coerce.date в tinyval.

Документы и реквизиты РФ ​

МаскаПример
inn()7707083893 или 500100732259 (10 или 12 цифр)
snils()123-456-789 01
passport()45 10 123456
ogrn()13 или 15 цифр
bik()044525225
kpp()7743AB001
account()40702 810 9 0000 0000001
postcode()101000
carPlate()А 123 ВС 77 — латинские буквы-двойники заменяются кириллицей

Числа ​

МаскаПример
money({ currency: '₽' })1 500,50 ₽ — без маски 1500.50
percent()15 %

Принимают все опции numberMask.

Прочее ​

МаскаПример
mac()AA:BB:CC:DD:EE:FF
hexColor()#FF8800

Что проверяет valid ​

isValid и свойство valid — значение заполнено и правильно по смыслу. isComplete и complete — только заполнено.

Маскаvalid
date, datetimeДата существует: 31.02 — нет, 29.02 — только в високосный год
cardExpiryМесяц 01–12, срок не истёк
cardКонтрольная цифра номера (алгоритм Луна)
inn, snils, ogrnКонтрольные суммы
phoneAutoНомер заполнен по маске определённой страны
остальныеТо же, что complete
ts
isComplete('31.02.2026', date()); // true — все цифры на месте
isValid('31.02.2026', date());    // false — такой даты нет

См. также ​

  • Шаблоны — своя маска, если готовой нет