A Credit Card Directives and Form Validators package for Angular X (4+).
This is a wrapper around Jesse Pollaks payment library.
This library is AOT compatible.
npm install ngx-credit-cards --saveYou can use the formatting directives on your input fields.
- Import the
NgXCreditCardsModulein the desired module. This module exports all the directives, so you can use this in theAppModuleor any other SharedModule.
import { NgModule } from '@angular/core';
import { NgXCreditCardsModule } from 'ngx-credit-cards';
import { AppComponent } from './app.component';
@NgModule({
imports: [NgXCreditCardsModule],
declarations: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule {
}- Add one of three available directives to your inputs
2.1 Credit Card Format Directive
ccNum:
<input type="tel" autocomplete="cc-number" id="cc-number" ccNum>This directive will also apply a class to the input of the card type. It applies whatever class cardType returns.
2.2 Credit Card Expiration Date Directive ccExp. It formats the date to type: MM/YY or MM/YYYY:
<input type="tel" type="tel" autocomplete="cc-exp" id="cc-exp" ccExp>2.3 Credit Card Cvc Directive ccCvc:
<input type="tel" type="tel" autocomplete="cc-cvc" id="cc-csc" ccCvc>You can import and use custom FormGroup validators for Angular Reactive Forms. Validators are available for card number, cvc and expiration date.
Import the custom validators to your component:
// These imports are just so you know what we use in the example below. Include if needed.
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { CreditCardValidator } from 'ngx-credit-cards';Now use the validators with your form group:
this.formBuilder = new FormBuilder();
this.formGroup = this.formBuilder.group({
cardNumber: ['', [CreditCardValidator.validateCardNumber],
cardExpDate: ['', [CreditCardValidator.validateCardExpiry],
cardCvv: ['', [CreditCardValidator.validateCardCvc],
cardName: ['', Validators.compose([Validators.required, Validators.minLength(2)])],
});An example of use with validators would be:
<div [ngClass]="{'invalid':mainForm.submitted && formGroup.controls.cardNumber.errors}">
<input type="tel" formControlName="cardNumber" autocomplete="cc-number" id="cc-number" ccNum>
</div>That's it! Enjoy, contribute and have fun.