Input and text mask library for vue 3 (based on text-mask-core).
this package published as vMask
module in umd.
<script src="https://unpkg.com/@termehui/vmask"></script>
npm i @termehui/vmask
You can use regex array as mask (like text-mask-core). For easy usage you can use string patterns instead of regex array. Pattern characters are helper character for easily define pattern.
You can pass string, regex array or function as mask input. All following types are valid:
mask("12345", "###-##");
mask("12345", [/\d/, /\d/, /\d/, "-", /\d/, /\d/]);
mask("12345", (v:string) => { ... });
Predefined patterns is:
Character | RegExp | Description |
---|---|---|
"#" |
/[0-9]/ |
match number |
"A" |
/[a-z]/i |
match any alpha character (uppercase and lowercase) |
"N" |
/[a-z0-9]/i |
match any alpha character and number (uppercase and lowercase) |
"X" |
/./ |
match any character |
"!" |
- |
escape next character (use before pattern characters. e.g. !# ) |
Register new pattern character.
// Signature:
registerPattern(key: string, pattern: RegExp): void;
// Example:
registerPattern("$", /\d/);
Remove registered pattern.
// Signature:
removePattern(key: string): void;
// Example:
registerPattern("$");
Mask string by pattern. Mask function accept conformToMask
methods config.
// Signature:
mask(input: string, mask: Mask, options: Object = null): string;
// Example:
mask("123456", "####-##"); // 1234-56
Get raw string from masked string.
// Signature:
unMask(input: string, mask: Mask): string;
// Example:
unMask("1234-56", "####-##"); // 123456
Caution: directive only work on input with v-model
!
import { vMask } from "@termehui/vmask";
app.directive("mask", vMask);
You can pass only mask or mask and options as vMask directive parameter. vMask directive accept createTextMaskInputElement
options.
<input v-mask="'####-##'" />
<input v-mask="{ mask: '####-##', options: { guide: true} }" />