@termehui/vmask

text mask directive and filter for vue 3
6,033 1
Install
npm install @termehui/vmask
Latest Version:1.0.0
Vue:3
License:ISC
Last Updated:Sep 16, 2023
Links: GitHub  ·  npm
Maintainer: mekramy

vMask

Input and text mask library for vue 3 (based on text-mask-core).

Installation

CDN

this package published as vMask module in umd.

<script src="https://unpkg.com/@termehui/vmask"></script>

NPM

npm i @termehui/vmask

Patterns

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. !#)

registerPattern

Register new pattern character.

// Signature:
registerPattern(key: string, pattern: RegExp): void;

// Example:
registerPattern("$", /\d/);

removePattern

Remove registered pattern.

// Signature:
removePattern(key: string): void;
// Example:
registerPattern("$");

Functions

mask

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

unMask

Get raw string from masked string.

// Signature:
unMask(input: string, mask: Mask): string;

// Example:
unMask("1234-56", "####-##"); // 123456

Directive

Caution: directive only work on input with v-model!

import { vMask } from "@termehui/vmask";
app.directive("mask", vMask);

Options

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} }" />

Related Packages

vue-the-mask

Tiny (2KB) and dependency free mask input for Vue.js

4,429,607
ke-the-mask

Tiny (2KB) and dependency free mask input for Vue.js

17,320 5
vue-the-mask2

Fork from Vue the mask

3,183
@bardoui/vmask

mask directive and filter for vue 3

1,255
@iflashka/vue-the-mask

Tiny (2KB) and dependency free mask input for Vue.js

321

Version History

Version Released Vue License
1.0.0 ^3.3.4 ISC