Ionic 2 angular 2 password validation not working?

How to i validate my password and conform password? I updated my ionic version then this is not working for me…How to i solve my problem?

My system information:

Cordova CLI: 6.5.0
Ionic Framework Version: 2.1.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.1.3
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 4.4
Node Version: v6.10.0
Xcode version: Not installed

i’ll send you sample code hope it’s helps you


 <ion-list no-margin>   
 <ion-item no-margin>       

<ion-input type=“password” name=“password” [(ngModel)]=“registerFrm.password” required #password=“ngModel”>

Retype Password
> > > small style="color:red;" [hidden]="cPassword.valid || (cPassword.pristine && !registerForm.submitted)"> Password mismatch > /small>


import { Directive, forwardRef, Attribute } from '@angular/core';import { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';@Directive({    selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',    providers: [        { provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualValidator), multi: true }    ]})export class EqualValidator implements Validator {    constructor( @Attribute('validateEqual') public validateEqual: string) {}
    validate(c: AbstractControl): { [key: string]: any } {        // self value (e.g. retype password)        let v = c.value;
        // control value (e.g. password)        let e = c.root.get(this.validateEqual);
        // value not equal        if (e && v !== e.value) return {            validateEqual: false        }        return null;    }}

add EqualValidator in to app.module.ts

@NgModule({ declarations: [EqualValidator

Try this code

Thank you for your reply.

I am using This format of form submit.


 <form [formGroup]="authForm" (ngSubmit)="submitForm(authForm.value)">
            <ion-label floating>Username</ion-label>
            <ion-input type="text" value="" [formControl]="authForm.controls['username']" [ngClass]="{'error-border':!authForm.controls['username'].valid}"></ion-input>         
        <div class="error-box" *ngIf="authForm.controls['username'].hasError('required') && authForm.controls['username'].touched">* Username is required!</div>
        <div class="error-box" *ngIf="authForm.controls['username'].hasError('minlength') && authForm.controls['username'].touched">* Minimum username length is 5!</div>
        <div class="error-box" *ngIf="authForm.controls['username'].hasError('maxlength') && authForm.controls['username'].touched">* Maximum username length is 10!</div>
        <!--<div *ngIf="username.hasError('checkFirstCharacterValidator') && username.touched"
            class="error-box">* Username cant't start with number!</div>-->
            <ion-label floating>Password</ion-label>
            <ion-input type="text" value="" [formControl]="authForm.controls['password']" ></ion-input>
        <div class="error-box" *ngIf="authForm.controls['password'].hasError('required') && authForm.controls['password'].touched">* Username is required!</div>
        <div class="error-box" *ngIf="authForm.controls['password'].hasError('minlength') && authForm.controls['password'].touched">* Minimum username length is 8!</div>
    <div class="error-box" *ngIf="authForm.controls['password'].hasError('checkFirstCharacterValidatorOutput') && authForm.controls['password'].touched">* Password cant't start with number!</div><br/>
    <button type="submit" ion-button full [disabled]="!authForm.valid">Submit</button>


import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { FormBuilder, FormGroup, Validators, AbstractControl } from '@angular/forms';
import { checkFirstCharacterValidator } from '../validators/customValidators';
  selector: 'page-form',
  templateUrl: 'form.html'
export class FormPage {
        authForm : FormGroup;
    constructor(public navCtrl: NavController, fb: FormBuilder) {
        this.authForm ={
          'username' : [null, Validators.compose([Validators.required, Validators.minLength(5), Validators.maxLength(10)])],
          'password': [null, Validators.compose([Validators.required, Validators.minLength(8), checkFirstCharacterValidator(/^\d/i)])],
          'gender' : 'e'
    submitForm(value: any):void{
        console.log('Form submited!')