Easy Input Mask Component In Vanilla JavaScript & Vue.js – Maska
AUTHOR: | beholdr |
---|---|
VIEWS TOTAL: | 26 views |
OFFICIAL PAGE: | Go to website |
LAST UPDATE: | February 23, 2021 |
LICENSE: | MIT |
Preview:
Description:
Maska is a small and customizable input mask component for Vanilla JavaScript and Vue.js framework.
How to use it (Vanilla JS):
1. Install and download the Maska library.
# NPM $ npm install maska --save
2. Load the Maska library from the dist folder.
<script src="/dist/maska.js"></script>
3. Define the mask rules in the data-mask attribute. All 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 }
<input data-mask="+1 (###) ###-####" class="masked" type="tel" autocomplete="tel"> <input data-mask="A* A*" class="masked"> <input data-mask="##/##/####" class="masked"> <input data-mask="#*" class="masked">
4. Initialize the plugin on the input and done.
Maska.create('.masked');
5. Customize the mask tokens.
Maska.create('.masked',{ '#': { 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 } });
6. It also provides a custom transform function that can be used to transform characters:
{ // '1234567890' -> '1010101010' 'T': { pattern: /[0-9]/, transform: (char) => String(Number(char) % 2) } }
7. Destroy the input mask plugin.
var myMask = Maska.create('.unmasked'); myMask.destroy();
Changelog:
v1.4.1 (02/23/2021)
- Fixed bug with dynamic mask
v1.4.0 (02/07/2021)
- Ability to get raw (unmasked) value
v1.3.2 (11/30/2020)
- Add typescript basic declarations
v1.3.1 (10/16/2020)
- Better support for Vue.js 3.
v1.2.0 (10/11/2020)
- Added custom transform function support alongside uppercase and lowercase
v1.2.0 (10/11/2020)
- Added custom transform function support alongside uppercase and lowercase
v1.2.0 (09/28/2020)
- Now the masked symbol is shown immediately
v1.1.6 (09/13/2020)
- Fix cursor jumps when editing first symbol
v1.1.5 (08/20/2020)
- Update
v1.1.4 (03/14/2020)
- Update
v1.1.2 (02/08/2020)
- Prevent adding multiple event listeners