Super tiny input mask library for vue.js based on PureMask.js

Super tiny input mask library for vue.js based on PureMask.js

Super tiny input mask library for vue.js based on PureMask.js (~2kb) exposed as directive. No dependencies.

:abcd: Vue input mask

npm Github file size npm GitHub license Vue2

Super tiny input mask library for vue.js based on PureMask.js (~2kb) exposed as directive. No dependencies

:art: Playground on the Web

  • https://codesandbox.io/s/m3q1m5yp9x (interactive playground with webpack and ESM)
  • https://jsfiddle.net/probil/c6fjjzn6/ (simple interactive playground with UMD)
  • https://v-mask-demo.netlify.com/ (just preview)

:cd: Installation

This version requires Vue 2.X. If you are looking for Vue 1.X, check it here.

npm install v-mask

Initialization

ES2015 (Webpack/Rollup/Browserify/etc)

import Vue from 'vue'

// As a plugin
import VueMask from 'v-mask'
Vue.use(VueMask);

// Or as a directive
import { VueMaskDirective } from 'v-mask'
Vue.directive('mask', VueMaskDirective);

UMD (Browser)

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/v-mask/dist/v-mask.min.js"></script>
<script>
// As a plugin
Vue.use(VueMask.VueMaskPlugin);

// Or as a directive
Vue.directive('mask', VueMask.VueMaskDirective);
</script>

:rocket: Usage

<input type="text" v-mask="'####-##'" v-model="myInputModel">
<!-- OR -->
<input type="text" v-mask="nameOfVariableWithMask" v-model="myInputModel">

Notice: v-model is required starting from v1.1.0, because a lot of bugs with HTMLElement event listeners and sync with Vue internals.

There is no reason to support using this lib for using without v-model but open the door for using on custom inputs.

:gear: Configs

List of supported placeholders:

Value Format
# Number (0-9)
A Letter in any case (a-z,A-Z)
N Number or letter
X Any symbol
? Optional (next character)

:syringe: Tests

Jest is used for unit-tests.

You can run tests by typing this command in your console:

npm test

Nightwatch is used of E2E testing.

Check the v-mask--demo repo for more details

:anchor: Semantic Versioning Policy

This plugin follows semantic versioning.

:newspaper: Changelog

We're using GitHub Releases.

:beers: Contributing

We're more than happy to see potential contributions, so don't hesitate. If you have any suggestions, ideas or problems feel free to add new issue, but first please make sure your question does not repeat previous ones.

Notice: You should make your changes only in src folder, don't try to edit files from dist as it compiled from src by babel and shouldn't be changes manually.

:lock: License

See the LICENSE file for license rights and limitations (MIT).

Github Repository

Tags: #VueJs #Input