Examples
Every field below is live. “Complete” means the expected number of characters is present, not that a date, checksum, card, or identifier is valid. Validate those separately in your application.
Examples that normalize case share these local token definitions:
index.ts
const uppercaseLetter = {
match: /[a-z]/i,
transform: (char: string) => char.toUpperCase(),
}
const uppercaseAlphanumeric = {
match: /[a-z0-9]/i,
transform: (char: string) => char.toUpperCase(),
}CPF
index.ts
bind(input, '999.999.999-99')CNPJ (alphanumeric)
index.ts
bind(input, 'AA.AAA.AAA/AAAA-99', { tokens: { A: uppercaseAlphanumeric } })CEP
index.ts
bind(input, '99999-999')Phone — array mask
index.ts
bind(input, ['(99) 9999-9999', '(99) 99999-9999'])Date — segmented (default)
index.ts
bind(input, '99/99/9999')Date — flat (segmented: false)
index.ts
bind(input, '99/99/9999', { segmented: false })Date — eager (default)
index.ts
bind(input, '99/99/9999')Date — not eager (eager: false)
index.ts
bind(input, '99/99/9999', { eager: false })Date — one or two digits ({min,max})
index.ts
bind(input, '9{1,2}/9{1,2}/9{4}')Time
index.ts
bind(input, '99:99')License plate
index.ts
bind(input, 'ZZZ-9999', { segmented: false, tokens: { Z: uppercaseLetter } })Mercosul plate
index.ts
bind(input, 'ZZZ-9Z99', { tokens: { Z: uppercaseLetter } })Credit card — array mask
index.ts
bind(input, ['9999 999999 99999', '9999 9999 9999 9999'])Currency (USD-style)
index.ts
bindDecimal(input, { decimalPlaces: 2, prefix: '$' })Currency (EUR-style)
index.ts
bindDecimal(input, { decimalPlaces: 2, separator: '.', decimalSeparator: ',', suffix: ' \u20AC' })Whole numbers
index.ts
bindDecimal(input, { decimalPlaces: 0, suffix: ' units' })Negative values
index.ts
bindDecimal(input, { decimalPlaces: 2, prefix: '$', allowNegative: true })Masked value vs. raw value
index.ts
bind(input, '999.999.999-99', value => {
document.getElementById('ex-raw-masked')!.textContent = value;
document.getElementById('ex-raw-digits')!.textContent = value.replace(/\D/g, '')
})masked
raw digits