Готовые маски
Готовые маски. Импортируйте из tinyval-mask/presets — так в сборку попадут только нужные. Все маски доступны и через объект masks из tinyval-mask.
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 |
isComplete('31.02.2026', date()); // true — все цифры на месте
isValid('31.02.2026', date()); // false — такой даты нетСм. также
- Шаблоны — своя маска, если готовой нет