Text Mask let's you turn a plain <input />
, into one that conforms
any user input, as they type, to a given mask pattern.
To see Text Mask in action, checkout the demo page.
IE9+, Android, Samsung Internet, Windows Phone, iOS, Opera, Firefox, Safari, and Chrome
Character | Description |
---|---|
1 |
Any number |
A |
Any letter |
? |
Any number or letter |
U |
Any letter (will be transformed to uppercase) |
L |
Any letter (will be transformed to lowercase) |
* |
Any character |
The mask also supports escaping, so you can use a masking character within the mask. For example
+\1 (111) 111-1111
The first 1
is not a masking character but part of the mask. For more information, see the
documentation here.
You can pass a function as the mask to create dynamic masks for things like currency formatting and more.
Guide mode prints out placeholder characters and the mask itself as the user types
No-guide mode doesn't print out placeholder characters and only adds mask characters when the user reaches them
You can change the placeholder character from _
(underscore) to anything you want. For example,
you can use the unicode character U+2000
(\u2000
in JavaScript), which is white space to
create a mask for phone number that looks like
+1 ( ) -
Or for date
/ /
- Highly configurable, see the documentation
- Supports pasting
- Supports browser auto-fill
- It is small, around 3KB gzipped
- Has no dependencies
Please file an issue or tweet at me.
Public domain - CC0 1.0 Universal