Branch: master
Find file History
Latest commit e54a612 May 2, 2018

Angular 2 Input Mask

Getting started

First, install it.

npm i angular2-text-mask --save

Then, import it into your @NgModule:

import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { TextMaskModule } from 'angular2-text-mask';

  imports: [
  declarations: []
export class MyModule {}

Then, use it in your component:

  selector: 'app',
  template: `
    <input [textMask]="{mask: mask}" [(ngModel)]="myModel" type="text"/>
export class AppComponent {
  public myModel = ''
  public mask = ['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]


As you can see in the code above, you are passing an object to the textMask directive.

📍 For more information about the values that the textMask object accepts, see this page.

Other use-cases

Unmasking the value that is stored in the model

Text Mask does not provide an option to unmask the model before storing it. You can sanitize the model on your side. See here for details.

change doesn't work

change on an input field will not work if [text-mask] is present. You can use (ngModelChange) instead. For more information, see this page.


To see an example of the code running, follow these steps:

  1. Clone the repo, git clone
  2. cd text-mask
  3. cd angular2
  4. npm install
  5. npm start
  6. Open http://localhost:3000

The code of the example is in angular2/example.

Ionic 2

Unfortunately, we are unable to support Ionic 2 ion-input at this point as it overrides the ControlValueAccessor that Text Mask requires to perform its job.