Skip to content
Input mask for React, Angular, Ember, Vue, & plain JavaScript
Branch: master
Clone or download
Latest commit d8510f8 Jul 30, 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
core Publish Jul 26, 2018
ember Publish Apr 27, 2018
vanilla Publish May 7, 2018
vue Publish Jul 25, 2018
website build website Jun 14, 2018
.eslintignore Fix CI tasks Nov 5, 2016
.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
.travis.yml [User Experience Improvement] for Number Field, if allowing decimal, … Jun 12, 2017
LICENSE Improve docs (#212) Sep 12, 2016 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-lock.json Publish May 7, 2018
package.json 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.