Skip to content

预设掩码 ​

预设掩码。请从 tinyval-mask/presets 导入 —— 这样只会打包用到的掩码。所有掩码也可以通过 tinyval-mask 中的 masks 对象使用。

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 的月份同样如此。整个日期是否存在(2 月 31 日)由校验负责:使用 tinyval 的 coerce.date。

俄罗斯证件与银行信息 ​

掩码示例
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校验位(Luhn 算法)
inn、snils、ogrn校验和
phoneAuto号码已按识别出的国家掩码填写完整
其他与 complete 相同
ts
isComplete('31.02.2026', date()); // true —— 数字都已填写
isValid('31.02.2026', date());    // false —— 不存在这个日期

另请参阅 ​

  • 模板:没有合适的预设掩码时自定义掩码