
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
ngx-mask is an Angular library that provides input masking capabilities. It allows developers to define patterns for input fields, ensuring that users enter data in a specific format. This is particularly useful for fields like phone numbers, dates, and credit card numbers.
Basic Input Masking
This feature allows you to apply a basic mask to an input field. In this example, the input field will only accept numbers in the format of '0000-0000-0000-0000', which is useful for credit card numbers.
<input type='text' mask='0000-0000-0000-0000' />
Date Masking
This feature allows you to apply a date mask to an input field. The input field will only accept dates in the format of 'DD/MM/YYYY'.
<input type='text' mask='00/00/0000' />
Custom Masking
This feature allows you to create custom masks. In this example, the input field will accept a pattern like 'A0A 0A0', which is useful for postal codes.
<input type='text' mask='A0A 0A0' />
Dynamic Masking
This feature allows you to apply a mask dynamically based on a variable. The 'dynamicMask' variable can be changed at runtime to apply different masks.
<input type='text' [mask]='dynamicMask' />
text-mask is a library that provides input masking for various frameworks including Angular, React, and Vue. It offers similar functionality to ngx-mask but is more versatile as it supports multiple frameworks.
cleave.js is a JavaScript library for formatting input fields. It supports a wide range of input types including credit card numbers, phone numbers, and dates. Compared to ngx-mask, cleave.js offers more built-in formats and is framework-agnostic.
imask is a versatile input masking library that supports a wide range of input types and custom masks. It is similar to ngx-mask but offers more advanced features like dynamic mask changing and custom mask definitions.
$ npm install --save ngx-mask
Import ngx-mask module in Angular app.
import {NgxMaskModule} from 'ngx-mask'
(...)
@NgModule({
(...)
imports: [
NgxMaskModule.forRoot(options)
]
(...)
})
Then, just define masks in inputs.
<input type='text' mask='{here comes your mask}' >
Also you can use mask pipe
<span>{{phone | mask: '(000) 000-0000'}}</span>
mask | example |
---|---|
9999-99-99 | 2017-04-15 |
0*.00 | 2017.22 |
000.000.000-99 | 048.457.987-98 |
AAAA | 0F6g |
SSSS | asDF |
You can define your custom options for all directives (as object in the mask module) or for each (as attributes for directive)
We have next default characters:
character |
---|
/ |
( |
) |
. |
: |
- |
space |
+ |
, |
@ |
<input type='text' specialCharacters="[ '[' ,']' , '\' ]" mask="[00]\[000]" >
Input value: 789-874.98
Masked value: [78]\[987]
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) |
<input type='text' [patterns]="customPatterns" mask="(000-000)" >
and in your component
public customPatterns = {'0': { pattern: new RegExp('\[a-zA-Z\]')}};
Input value: 789HelloWorld
Masked value: (Hel-loW)
You can add prefix to you masked value
<input type='text' prefix="+7 " mask="(000) 000 00 00" >
You can add sufix to you masked value
<input type='text' sufix=" $" mask="0000" >
You can choose if mask will drop special character in the model, or not, default value true
<input type='text' [dropSpecialCharacters]="false" mask="000-000.00" >
Input value: 789-874.98
Model value: 789-874.98
You can choose if mask is shown while typing, or not, default value false
<input mask="(000) 000-0000" prefix="+7" [showMaskTyped] = "true">
You can choose clear the input if the input value not match the mask, default value false
You can pass array of expression and custom Pattern to pipe
<span>{{phone | mask: customMaska}}</span>
and in your component
customMaska: [string, pattern];
pattern = {
'P': {
pattern: new RegExp('\\d'),
}};
this.customMaska = ['PPP-PPP', this.pattern];
You can pass into mask pattern with brackets
<input type='text' mask="A{4}">
You can devide your input by thousands
<input type='text' mask="separator">
For separate input with dots
<input type='text' mask="dot_separator">
For using decimals enter '.' to the end of your input to 'separator' mask and ',' to 'dot_separator'
Input value: 1234.56
Masked value: 1 234.56
Input value: 1234,56
Masked value: 1.234,56
You can validate your input as 24 hour format
<input type='text' mask="Hh:m0:s0">
You can validate your input for percents
<input type='text' mask="percents" sufix="%">
Check the demo.
FAQs
awesome ngx mask
The npm package ngx-mask receives a total of 228,790 weekly downloads. As such, ngx-mask popularity was classified as popular.
We found that ngx-mask demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.