首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >验证器模型驱动(反应式)表单的参数

验证器模型驱动(反应式)表单的参数
EN

Stack Overflow用户
提问于 2017-04-18 17:04:14
回答 2查看 742关注 0票数 1

我使用模型驱动创建了一个验证表单。这是我的验证器,用于检查电子邮件是否格式良好。

代码语言:javascript
运行
复制
static emailValidator(control) {

    if (control.value.match(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/)) {
      return null;
    } else {
      return { 'invalidEmailAddress': true };
    }
  } 

我是这样使用它的:

代码语言:javascript
运行
复制
constructor(private formBuilder: FormBuilder) {


    //controlli campi della form

    this.userForm = this.formBuilder.group({

      'email': ['', [Validators.required, ValidationService.emailValidator]]
    });

现在,我如何在我的验证器中传递一个参数,比如字符串?例如,我希望电子邮件不包含字符串"abcd“。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-04-25 21:17:38

只需创建一个返回验证器函数的函数。

代码语言:javascript
运行
复制
static emailValidator(match: string) {
  return function (control: AbstractControl) {
    // do validation here
  }
}

用法

代码语言:javascript
运行
复制
'email': ['', [Validators.required, ValidationService.emailValidator(someValue)]]
票数 2
EN

Stack Overflow用户

发布于 2017-04-18 20:17:41

试着这样做:

代码语言:javascript
运行
复制
let EMAIL_REGEXP = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

 if (EMAIL_REGEXP.test(control.value)) {
             return null;  
        }
 else {
      return { 'invalidEmailAddress': true };
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43467919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档