2017-03-28 51 views
1

我有內部MD-input元素此Angular2形式:Angular2:驗證MD-裏面輸入電子郵件地址

<form noValidate (ngSubmit)="onSubmit(resetPasswFg)" [formGroup]="resetPasswFg" style="width:400px;border:1px solid black; "> 
    <table style="width:400px;"> 
    <tr> 
     <td> 
     <md-input class="input" mdInput placeholder="Email" type="email" formControlName="email"> 
      <md-hint class="input_error" *ngIf="resetPasswFg.get('email').hasError('required') && resetPasswFg.get('email').touched"> 
      Email required 
      </md-hint> 
     </md-input> 
     </td> 
    </tr> 
<!-- Other elements --> 
</form> 

,這是我的驗證的內部組件:現在

ngOnInit() { 
    this.resetPasswFg = new FormGroup({ 
     email: new FormControl('', [Validators.required, Validators.required ]) 
    }) 
} 

,如果電子郵件字段不是populator,md-hint顯示正確。現在,如果電子郵件地址md-input不包含格式正確的電子郵件地址,我還會顯示md-hint。我能怎麼做?

+1

您可以使用'Validators.pattern'並應用一些正則表達式。 – Alex

+2

Angular 4有一個新的內置電子郵件驗證器:https://github.com/angular/angular/commit/d69717cf79c3141cdbd69b538a3aaded55a8f43b – DeborahK

+0

爲什麼有兩個'Validators.required'? – Edric

回答

2

您可以通過指令使用電子郵件驗證器。見EmailValidator課。

一個指令,通過NG_VALIDATORS綁定將電子郵件驗證程序添加到帶有電子郵件屬性標記的控件。


<md-input class="input" mdInput placeholder="Email" type="email" formControlName="email" email> 

該指令也包ng2-validators可用。

+0

如何在ngIf條件的md-hint中添加錯誤驗證的條件? – giozh

+0

'不是電子郵件',只需用md-hint替換span即可 –