vanilla javascript input mask
Clone or download
Latest commit f19fad1 Oct 17, 2018
Failed to load latest commit information.
docs update docs Oct 17, 2018
packages Update Oct 17, 2018
.eslintrc #10: add flowtype check Dec 8, 2017
.gitignore ignore compiled site Apr 12, 2018
.travis.yml fix travis node version May 11, 2018
Gemfile add docs for typedValue May 4, 2018
Gemfile.lock update deps Oct 12, 2018
LICENSE Initial commit Nov 10, 2016 update guide and readme Sep 7, 2018
lerna.json v4.1.0 Oct 17, 2018
package-lock.json update deps Oct 12, 2018
package.json update deps Oct 12, 2018


vanilla javascript input mask

Build Status Coverage Status npm version License: MIT lerna


  • get and set raw and unmasked values easily
  • no external dependencies
  • RegExp mask
  • Function mask
  • Number mask (integer and decimal)
  • Date mask (various format support)
  • Dynamic/on-the-fly mask
  • Pattern mask
    • show placeholder always and only when necessary
    • unmasked value can contain fixed parts
    • optional input parts (greedy)
    • custom definitions
    • reusable blocks
    • Enum and Range masks



npm install imask and import IMask from 'imask';

or use CDN:

<script src=""></script>

Build & Test

npm run make


Supports all major browsers and IE11+ need to support older?

Docs, Examples, Demo

Further Plans

Many Thanks to

@Viktor Yakovlev

@Alexander Kiselev

Support Development

If you enjoyed working with it, you can buy me a cup of coffee :)

Buy Me a Coffee at