パッケージの詳細

ngx-mask-2

kakkireniv1.7kMIT6.5.23

awesome ngx mask

ng2-mask, ngx-mask, ng2, angular-mask

readme

ngx-mask-2

Forked from JsDaddy/ngx-mask repository, check original repository here: https://github.com/JsDaddy/ngx-mask/

Build Status npm npm downloads npm

Installing

$ npm install --save ngx-mask-2

Quickstart

Import ngx-mask-2 module in Angular app.

import {NgxMaskModule} from 'ngx-mask-2'

(...)

@NgModule({
  (...)
  imports: [
    NgxMaskModule.forRoot(options)
  ]
  (...)
})

Then, just define masks in inputs.

Usage

<input type='text' mask='{here comes your mask}' >

Also you can use mask pipe

Usage

<span>{{phone | mask: '(000) 000-0000'}}</span>

Examples

mask example
9999-99-99 2017-04-15
0*.00 2017.22
000.000.000-99 048.457.987-98
AAAA 0F6g
SSSS asDF

Mask Options

You can define your custom options for all directives (as object in the mask module) or for each (as attributes for directive)

specialCharacters (string[ ])

We have next default characters:

character
/
(
)
.
:
-
space
+
,
@
Usage
<input type='text' specialCharacters="[ '[' ,']' , '\' ]" mask="[00]\[000]" >
Then:
Input value: 789-874.98
Masked value: [78]\[987]

patterns ({ [character: string]: { pattern: RegExp, optional?: boolean})

We have next default patterns:

code meaning
0 digits (like 0 to 9 numbers)
9 digits (like 0 to 9 numbers), but optional
A letters (uppercase or lowercase) and digits
S only letters (uppercase or lowercase)
Usage:
<input type='text' [patterns]="customPatterns" mask="(000-000)" >

and in your component

public customPatterns = {'0': { pattern: new RegExp('\[a-zA-Z\]')}};
Then:
Input value: 789HelloWorld
Masked value: (Hel-loW)

prefix (string)

You can add prefix to you masked value

Usage
<input type='text' prefix="+7 " mask="(000) 000 00 00" >

appendPrefixToModel (boolean)

You can choose to append prefix value to NgModel, default value false

Usage
<input type='text' prefix="+7 " mask="(000) 000 00 00" [appendPrefixToModel]="true" >

sufix (string)

You can add sufix to you masked value

Usage
<input type='text' sufix=" $" mask="0000" >

dropSpecialCharacters (boolean)

You can choose if mask will drop special character in the model, or not, default value true

Usage
<input type='text' [dropSpecialCharacters]="false" mask="000-000.00" >
Then:
Input value: 789-874.98
Model value: 789-874.98

showMaskTyped (boolean)

You can choose if mask is shown while typing, or not, default value false

Usage
 <input mask="(000) 000-0000" prefix="+7" [showMaskTyped] = "true">

clearIfNotMatch (boolean)

You can choose clear the input if the input value not match the mask, default value false

Pipe with mask expression and custom Pattern ([string, pattern])

You can pass array of expression and custom Pattern to pipe

Usage
 <span>{{phone | mask: customMaska}}</span>

and in your component

customMaska: [string, pattern];

pattern =  {
    'P': {
        pattern: new RegExp('\\d'),
    }};

this.customMaska = ['PPP-PPP', this.pattern];

Repeat mask

You can pass into mask pattern with brackets

Usage
 <input type='text' mask="A{4}">

Examples

Check the demo.

更新履歴

[6.1.3 update demo, added support, resolved issues] (2018-10-09)

Update of demo version Added support to pass in value of type number or string Resolved issues

[6.1.1 support for prefix] (2018-23-07)

Add support for prefix

[2.9.5 support for optional character in input '?'] (2018-18-06)

Add [ and ] as defoult symbols for mask

[2.9.4 support for optional character in input '?'] (2018-18-06)

Fix shift for cursor and updated all dependencies

[2.9.3 support for optional character in input '?'] (2018-29-05)

Add support for optional character in input '?'

[2.8.3 support for multicharacter input '*'] (2018-29-05)

Add support for multicharacter input '*'

[2.7.3 proprioception-reinforcement] (2018-08-05)

Updated all dependencies and remove usages of rxjs