Skip to content
Input mask for React, Angular, Ember, Vue, & plain JavaScript
Branch: master
Clone or download
Latest commit d8510f8 Jul 31, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
addons Publish Jul 30, 2018
angular1 Publish May 7, 2018
angular2 Publish May 1, 2018
assets Feature: `keepCharPositions` (#93) Jul 16, 2016
common Fix for issue #469: `createNumberMask`: caret positioning bug: reset … Mar 30, 2017
ember Publish Apr 27, 2018
vanilla Publish May 7, 2018
vue Publish Jul 25, 2018
website build website Jun 14, 2018
.eslintrc.json Fix issue with a ghost caret blinking in the end of the input on andr… Mar 20, 2017
.gitignore Test stub for Angular directive (#558) Jun 21, 2017
LICENSE update readme (#402) Feb 26, 2017 Docs: Update docs for showMask (#505) Apr 18, 2017 Make Angular 2 directive compatible with different form types (#154) Aug 21, 2016
index.html Allow user to customize placeholder character (#43) May 29, 2016
package.json Updated babel to env (#790) May 7, 2018 Publish packages Jun 26, 2016

Text Mask

Build Status

Text Mask is an input mask library. It can create input masks for phone, date, currency, zip code, percentage, email, and literally anything!

There are convenient wrappers for React, Angular 2, Ember, and Vue.

Live demo

See it in action, check out the demo page.

Installation and usage

Expected to work with...

IE9+, Android, Samsung Internet, Windows Phone, iOS, Opera, Firefox, Safari, and Chrome


Text Mask is very configurable and allows you to create any type of input mask with minimal APIs. See the documentation for details.


You can easily expand the base functionality of Text Mask with addons for more mask types. Checkout existing addons.


Text Mask supports pasting, browser auto-fill, and all operations that a user would expect while interacting with an input field.

It works on mobile, has no 3rd party dependencies, and has a tiny footprint (less than 4KB gzipped).

For any questions, suggestions, or feature requests

Please file an issue!

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.