vanilla javascript input mask
Clone or download
Latest commit 3897c76 Oct 15, 2018
Failed to load latest commit information.
docs update doc Sep 9, 2018
packages fix flow check Oct 15, 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 fix versions Oct 11, 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