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'

另请参阅 ​