Input mask for Angular/Ionic (Tested with Ionic 4)
$ npm install --save ngx-ion-simple-mask
Import ngx-ion-simple-mask module in Angular app.
import { SimpleMaskModule } from 'ngx-ion-simple-mask'
@NgModule({
imports: [
SimpleMaskModule
]
})
Or import the directive/pipe separately
import { SimpleMaskDirective, SimpleMaskPipe } from 'ngx-ion-simple-mask'
@NgModule({
declarations: [
SimpleMaskDirective,
SimpleMaskPipe
]
})
ionic usage example:
<ion-input simpleMask="999.999.999-99" [clearIfNotMatch]="true"></ion-input>
Angular usage example:
<input simpleMask="999.999.999-99" [clearIfNotMatch]="true">
The libray works with Form Control and ngModel:
<input simpleMask="999.999.999-99" [formControl]="formControl">
<input simpleMask="999.999.999-99" [(ngModel)]="value">
<p>{{ '123321123-12' | simpleMask:'999.999.999-99' }}<p>
output:
<p>123.321.123-12</p>
<p>{{ 'asd-123' | simpleMask:'aaa-II':{'I': '[0-9]' } }}<p>
output:
<p>asd-12</p>
<p>{{ '123-bddd' | simpleMask:'III-aaa':{'I': '[0-9]' }:true }}<p>
output:
<p>123-aaa</p>
patterns = {
'9': new RegExp('[0-9]'),
'a': new RegExp('[a-z]'),
'A': new RegExp('[A-Z]'),
'x': new RegExp('[a-zA-Z]'),
'*': new RegExp('[a-zA-Z0-9]'),
'~': new RegExp('[-\+]')
};
pattern | meaning |
---|---|
9 | digits (0-9) |
a | lowercase letters (a-z) |
A | uppercase letters (A-Z) |
x | letters uppercase or lowercase (a-z, A-Z) |
~ | - or + |
* | letters or digits (a-z, A-Z, 0-9) |
\ | cancel next pattern effect |
mask | example |
---|---|
999.999.aaa | 113.123.asd |
(AA) 999 | (AS) 123 |
999\~ | 999~ |
The set strings will be used as regex
<input
simpleMask="IIIxxx"
[newPatterns]="{ 'I': '[a-z]', 'x': '[0-9]' }">
example of input: abc123
The set strings will be used as regex
<input simpleMask="~III999" [addPatterns]="{ 'I': '[a-z]' }">
example of input: +abc123
The project was built with angular-library-starter.
MIT