Skip to content

mask, unmask, isComplete ​

Чистые функции: работают без DOM — в браузере, на сервере, в тестах. Маску можно передать объектом или строкой-шаблоном.

Сигнатура ​

ts
function mask(value: string, mask: MaskInput): string
function unmask(value: string, mask: MaskInput): string
function isComplete(value: string, mask: MaskInput): boolean
function isValid(value: string, mask: MaskInput): boolean
ФункцияВозвращает
maskОтформатированное значение
unmaskЗначение без маски — для данных и базы
isCompleteЗаполнены ли все обязательные позиции
isValidЗаполнено и правильно по смыслу: дата существует, контрольная сумма сходится — см. Готовые маски

null и undefined считаются пустой строкой.

Примеры ​

ts
import { mask, unmask, isComplete } from 'tinyval-mask';
import { phone } from 'tinyval-mask/presets';

mask('89991234567', phone());          // '+7 (999) 123-45-67'
unmask('+7 (999) 123-45-67', phone()); // '79991234567'
isComplete('+7 (999) 123', phone());   // false
isValid('4111 1111 1111 1112', card()); // false — wrong check digit

mask('20261002', '9999-99-99');        // '2026-10-02'
ts
// server: normalize phones from any source
const normalized = users.map((u) => ({ ...u, phone: unmask(u.phone, phone()) }));
// '8 (999) 123-45-67', '+7 999 1234567', '9991234567' → '79991234567'

См. также ​