Angular2中的通用邮件验证器

前端之家收集整理的这篇文章主要介绍了Angular2中的通用邮件验证器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建一个用户将输入他的邮件的表单。
我想验证客户端的邮件格式。
Angular2中是否有任何通用的邮件验证器?

注意:与angularjs验证器类似的东西:https://docs.angularjs.org/api/ng/input/input%5Bemail%5D

您可以使用表单指令和控件来执行此操作。
  1. export class TestComponent implements OnInit {
  2. myForm: ControlGroup;
  3. mailAddress: Control;
  4.  
  5. constructor(private builder: FormBuilder) {
  6. this.mailAddress = new Control(
  7. "",Validators.compose([Validators.required,GlobalValidator.mailFormat])
  8. );
  9. }
  10.  
  11. this.addPostForm = builder.group({
  12. mailAddress: this.mailAddress
  13. });
  14. }

进口:

  1. import { FormBuilder,Validators,Control,ControlGroup,FORM_DIRECTIVES } from 'angular2/common';

然后你的GlobalValidator类:

  1. export class GlobalValidator{
  2.  
  3. static mailFormat(control: Control): ValidationResult {
  4.  
  5. var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;
  6.  
  7. if (control.value != "" && (control.value.length <= 5 || !EMAIL_REGEXP.test(control.value))) {
  8. return { "incorrectMailFormat": true };
  9. }
  10.  
  11. return null;
  12. }
  13.  
  14. }
  15.  
  16. interface ValidationResult {
  17. [key: string]: boolean;
  18. }

然后你的html:

  1. <div class="form-group">
  2. <label for="mailAddress" class="req">Email</label>
  3. <input type="text" ngControl="mailAddress" />
  4. <div *ngIf="mailAddress.dirty && !mailAddress.valid" class="alert alert-danger">
  5. <p *ngIf="mailAddress.errors.required">mailAddressis required.</p>
  6. <p *ngIf="mailAddress.errors.incorrectMailFormat">Email format is invalid.</p>
  7. </div>
  8. </div>

有关这方面的更多信息,您可以阅读这篇很好的文章https://medium.com/@daviddentoom/angular-2-form-validation-9b26f73fcb81#.jrdhqsnpg或看到这个github项目为working example

猜你在找的Angularjs相关文章