2
0
mirror of https://github.com/tenrok/maska.git synced 2026-05-15 11:59:38 +03:00
2019-09-27 22:15:22 +03:00
2019-09-27 22:15:22 +03:00
2019-09-27 22:12:19 +03:00
2019-09-27 22:15:22 +03:00
2019-09-25 15:22:31 +03:00
2019-09-25 15:22:31 +03:00
2019-09-25 15:22:31 +03:00
2019-09-27 22:15:22 +03:00
2019-09-27 22:12:19 +03:00
2019-09-25 15:22:31 +03:00

Maska

Simple zero-dependency input mask for Vue.js and vanilla JS. Demo and examples.

  • No dependencies
  • Small size (~2 Kb gziped)
  • Ability to define custom tokens
  • Supports repeat symbols
  • Works on any input (custom or native)

Install

npm install maska

To load latest version from CDN you can use:

<script src="https://cdn.jsdelivr.net/npm/maska/dist/maska.js"></script>

Usage with Vue.js

If you load Vue.js via <script> then just add v-maska directive to your input:

<input v-maska="'###'">

You can add custom tokens by passing in object instead of string to directive:

<input v-maska="{ mask: 'Z*', tokens: { 'Z': { pattern: /[а-яА-Я]/ }}}">

With bundlers you can add global directive:

import Maska from 'maska'
Vue.use(Maska)

or import maska directive for local usage in component:

<template>
    <form>
        <input v-maska="'###'">
    </form>
</template>

<script>
import { maska } from 'maska'

export default {
    directives: { maska }
}
</script>

Usage with vanilla JS

Just load script maska.js and init it, passing element(s) or document.querySelector expression:

var mask = Maska.create('.masked');

You can pass custom tokens while initialization:

var mask = Maska.create('.masked', {
    tokens: { 'Z': { pattern: /[а-яА-Я]/ }}
});

You can destroy mask like that:

var mask = Maska.create('.masked');
mask.destroy();

Mask syntax

Default tokens:

{
    '#': { pattern: /[0-9]/ },
    'X': { pattern: /[0-9a-zA-Z]/ },
    'S': { pattern: /[a-zA-Z]/ },
    'A': { pattern: /[a-zA-Z]/, uppercase: true },
    'a': { pattern: /[a-zA-Z]/, lowercase: true },
    '!': { escape: true },
    '*': { repeat: true }
}
  • Escape symbol escapes next token (mask !# will render #)
  • Repeat symbol allows repeating current token until its valid (e.g. mask #* for all digits or A* A* for CARDHOLDER NAME)

You can add your own tokens by passing them in maska directive or create method at initialization (see above). Important: pattern field should be JS regular expression (/[0-9]/) or string without delimiters ("[0-9]").

Source of Inspiration

S
Description
No description provided
Readme 1.4 MiB
Languages
TypeScript 91.3%
Vue 6.8%
Svelte 1.6%
JavaScript 0.2%